Authors: Alexandre Julliard <julliard@codeweavers.com> (for Corel), Albert den Haan <albertd@corel.com>
Added syslevel locking for GDI operations.
Propagate the changes through the graphics code.
diff --git a/objects/enhmetafile.c b/objects/enhmetafile.c
index 6828837..60000a0 100644
--- a/objects/enhmetafile.c
+++ b/objects/enhmetafile.c
@@ -35,13 +35,16 @@
HENHMETAFILE EMF_Create_HENHMETAFILE(ENHMETAHEADER *emh, HFILE hFile, HANDLE
hMapping )
{
- HENHMETAFILE hmf = GDI_AllocObject( sizeof(ENHMETAFILEOBJ),
- ENHMETAFILE_MAGIC );
- ENHMETAFILEOBJ *metaObj = (ENHMETAFILEOBJ *)GDI_HEAP_LOCK( hmf );
+ HENHMETAFILE hmf = 0;
+ ENHMETAFILEOBJ *metaObj = GDI_AllocObject( sizeof(ENHMETAFILEOBJ),
+ ENHMETAFILE_MAGIC, &hmf );
+ if (metaObj)
+ {
metaObj->emh = emh;
metaObj->hFile = hFile;
metaObj->hMapping = hMapping;
- GDI_HEAP_UNLOCK( hmf );
+ GDI_ReleaseObj( hmf );
+ }
return hmf;
}
@@ -59,7 +62,7 @@
CloseHandle( metaObj->hFile );
} else
HeapFree( GetProcessHeap(), 0, metaObj->emh );
- return GDI_FreeObject( hmf );
+ return GDI_FreeObject( hmf, metaObj );
}
/******************************************************************
@@ -81,9 +84,9 @@
*
* Releases ENHMETAHEADER associated with HENHMETAFILE
*/
-static BOOL EMF_ReleaseEnhMetaHeader( HENHMETAFILE hmf )
+static void EMF_ReleaseEnhMetaHeader( HENHMETAFILE hmf )
{
- return GDI_HEAP_UNLOCK( hmf );
+ GDI_ReleaseObj( hmf );
}
/*****************************************************************************