[NtGDI] Fix leaking of bitmaps while testing INFO DC's.

Soon to be commit test for metafiles.

ret = MaskBlt(hdc, 0, 0, 3, 4, dib_hdc, 0, 0, mask_bitmap, 0, 0, SRCCOPY);
This commit is contained in:
James Tabor 2021-09-27 23:11:33 -05:00
parent 8767aada75
commit d9f8b8b033

View file

@ -385,6 +385,7 @@ NtGdiMaskBlt(
if (!GDIOBJ_bLockMultipleObjects(2, (HGDIOBJ*)ahDC, apObj, GDIObjType_DC_TYPE))
{
WARN("Invalid dc handle (dest=0x%p, src=0x%p) passed to NtGdiMaskBlt\n", hdcDest, hdcSrc);
if(psurfMask) SURFACE_ShareUnlockSurface(psurfMask);
EngSetLastError(ERROR_INVALID_HANDLE);
return FALSE;
}
@ -396,6 +397,7 @@ NtGdiMaskBlt(
{
if(DCSrc) DC_UnlockDc(DCSrc);
WARN("Invalid destination dc handle (0x%p) passed to NtGdiMaskBlt\n", hdcDest);
if(psurfMask) SURFACE_ShareUnlockSurface(psurfMask);
return FALSE;
}
@ -404,6 +406,7 @@ NtGdiMaskBlt(
if(DCSrc) DC_UnlockDc(DCSrc);
DC_UnlockDc(DCDest);
/* Yes, Windows really returns TRUE in this case */
if(psurfMask) SURFACE_ShareUnlockSurface(psurfMask);
return TRUE;
}
@ -415,6 +418,7 @@ NtGdiMaskBlt(
DC_UnlockDc(DCDest);
DC_UnlockDc(DCSrc);
/* Yes, Windows really returns TRUE in this case */
if(psurfMask) SURFACE_ShareUnlockSurface(psurfMask);
return TRUE;
}
}