mirror of
https://github.com/reactos/reactos.git
synced 2026-06-01 17:00:51 +08:00
[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:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user