[ros-diffs] [tkreuzer] 40189: GDIOBJ_ShareUnlockObjByPtr: Temporarily don't ASSERT, but print a backtrace when trying to unlock an object that wasn't locked.

tkreuzer at svn.reactos.org tkreuzer at svn.reactos.org
Mon Mar 23 20:11:38 CET 2009


Author: tkreuzer
Date: Mon Mar 23 22:11:37 2009
New Revision: 40189

URL: http://svn.reactos.org/svn/reactos?rev=40189&view=rev
Log:
GDIOBJ_ShareUnlockObjByPtr: Temporarily don't ASSERT, but print a backtrace when trying to unlock an object that wasn't locked.

Modified:
    trunk/reactos/subsystems/win32/win32k/include/gdiobj.h

Modified: trunk/reactos/subsystems/win32/win32k/include/gdiobj.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/include/gdiobj.h?rev=40189&r1=40188&r2=40189&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/include/gdiobj.h [iso-8859-1] (original)
+++ trunk/reactos/subsystems/win32/win32k/include/gdiobj.h [iso-8859-1] Mon Mar 23 22:11:37 2009
@@ -104,7 +104,13 @@
 GDIOBJ_ShareUnlockObjByPtr(POBJ Object)
 {
     INT cLocks = InterlockedDecrement((PLONG)&Object->ulShareCount);
-    ASSERT(cLocks >= 0);
+//    ASSERT(cLocks >= 0);
+    if (cLocks < 0)
+    {
+        DbgPrint("Unlocked object %p, that was not locked!\n", Object->hHmgr);
+        KdSystemDebugControl(TAG('R', 'o', 's', 'D'), NULL, 20, NULL, 0, NULL, KernelMode);
+        InterlockedIncrement((PLONG)&Object->ulShareCount);
+    }
     return cLocks;
 }
 



More information about the Ros-diffs mailing list