gdi32: Avoid leaking a handle in MFDRV_ExtSelectClipRgn.
This commit is contained in:
parent
2159f2bce8
commit
0bd3d8e68e
|
@ -420,6 +420,7 @@ INT MFDRV_ExtSelectClipRgn( PHYSDEV dev, HRGN hrgn, INT mode )
|
|||
if(iRgn == -1) return ERROR;
|
||||
ret = MFDRV_MetaParam1( dev, META_SELECTCLIPREGION, iRgn ) ? NULLREGION : ERROR;
|
||||
MFDRV_MetaParam1( dev, META_DELETEOBJECT, iRgn );
|
||||
MFDRV_RemoveHandle( dev, iRgn );
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
|
@ -56,6 +56,7 @@ extern BOOL MFDRV_MetaParam8(PHYSDEV dev, short func, short param1, short param2
|
|||
short param6, short param7, short param8);
|
||||
extern BOOL MFDRV_WriteRecord(PHYSDEV dev, METARECORD *mr, DWORD rlen);
|
||||
extern UINT MFDRV_AddHandle( PHYSDEV dev, HGDIOBJ obj );
|
||||
extern BOOL MFDRV_RemoveHandle( PHYSDEV dev, UINT index );
|
||||
extern INT16 MFDRV_CreateBrushIndirect( PHYSDEV dev, HBRUSH hBrush );
|
||||
|
||||
/* Metafile driver functions */
|
||||
|
|
|
@ -58,6 +58,23 @@ UINT MFDRV_AddHandle( PHYSDEV dev, HGDIOBJ obj )
|
|||
return index ; /* index 0 is not reserved for metafiles */
|
||||
}
|
||||
|
||||
/******************************************************************
|
||||
* MFDRV_RemoveHandle
|
||||
*/
|
||||
BOOL MFDRV_RemoveHandle( PHYSDEV dev, UINT index )
|
||||
{
|
||||
METAFILEDRV_PDEVICE *physDev = (METAFILEDRV_PDEVICE *)dev;
|
||||
BOOL ret = FALSE;
|
||||
|
||||
if (index < physDev->handles_size && physDev->handles[index])
|
||||
{
|
||||
physDev->handles[index] = 0;
|
||||
physDev->cur_handles--;
|
||||
ret = TRUE;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
/******************************************************************
|
||||
* MFDRV_FindObject
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue