Commit 6d58de63 authored by Jukka Heinonen's avatar Jukka Heinonen Committed by Alexandre Julliard

If source and destination are the same object, don't lock the object

twice as it will only be unlocked once.
parent 2b5b00b0
...@@ -1552,8 +1552,12 @@ BOOL X11DRV_BitBlt( X11DRV_PDEVICE *physDevDst, INT xDst, INT yDst, ...@@ -1552,8 +1552,12 @@ BOOL X11DRV_BitBlt( X11DRV_PDEVICE *physDevDst, INT xDst, INT yDst,
* we can pass TRUE instead of FALSE to CoerceDIBSection(dcDst...), * we can pass TRUE instead of FALSE to CoerceDIBSection(dcDst...),
* which may avoid a copy in some situations */ * which may avoid a copy in some situations */
} }
sDst = X11DRV_LockDIBSection( physDevDst, DIB_Status_None, FALSE ); sDst = X11DRV_LockDIBSection( physDevDst, DIB_Status_None, FALSE );
sSrc = X11DRV_LockDIBSection( physDevSrc, DIB_Status_None, FALSE ); if (physDevDst != physDevSrc)
sSrc = X11DRV_LockDIBSection( physDevSrc, DIB_Status_None, FALSE );
else
sSrc = sDst;
if ((sSrc == DIB_Status_AppMod) && (rop == SRCCOPY) && if ((sSrc == DIB_Status_AppMod) && (rop == SRCCOPY) &&
(physDevSrc->depth == physDevDst->depth)) (physDevSrc->depth == physDevDst->depth))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment