Set the ownership before locking the bitmap in EngCreateDeviceSurface, because GDIOBJ_SetOwnership runs in a dead lock if the object is already locked by the same process.

This may fix bug 747.

svn path=/trunk/; revision=17621
This commit is contained in:
Hartmut Birr 2005-09-03 17:40:33 +00:00
parent acb0c26036
commit 2cea7b7c46

View file

@ -394,6 +394,8 @@ EngCreateDeviceSurface(IN DHSURF dhsurf,
if (NewSurface == NULL) if (NewSurface == NULL)
return 0; return 0;
GDIOBJ_SetOwnership(NewSurface, NULL);
BitmapObj = BITMAPOBJ_LockBitmap(NewSurface); BitmapObj = BITMAPOBJ_LockBitmap(NewSurface);
if (! BITMAPOBJ_InitBitsLock(BitmapObj)) if (! BITMAPOBJ_InitBitsLock(BitmapObj))
{ {
@ -403,8 +405,6 @@ EngCreateDeviceSurface(IN DHSURF dhsurf,
} }
SurfObj = &BitmapObj->SurfObj; SurfObj = &BitmapObj->SurfObj;
GDIOBJ_SetOwnership(NewSurface, NULL);
SurfObj->dhsurf = dhsurf; SurfObj->dhsurf = dhsurf;
SurfObj->hsurf = NewSurface; SurfObj->hsurf = NewSurface;
SurfObj->sizlBitmap = Size; SurfObj->sizlBitmap = Size;