Author: akhaldi
Date: Tue May  3 20:08:25 2016
New Revision: 71250

URL: http://svn.reactos.org/svn/reactos?rev=71250&view=rev
Log:
[0.4.1] * Apply the hackfix from CORE-9836 by Joachim Henze.

Modified:
    branches/ros-branch-0_4_1/reactos/win32ss/user/ntuser/class.c
    branches/ros-branch-0_4_1/reactos/win32ss/user/ntuser/cursoricon.c
    branches/ros-branch-0_4_1/reactos/win32ss/user/ntuser/msgqueue.c

Modified: branches/ros-branch-0_4_1/reactos/win32ss/user/ntuser/class.c
URL: 
http://svn.reactos.org/svn/reactos/branches/ros-branch-0_4_1/reactos/win32ss/user/ntuser/class.c?rev=71250&r1=71249&r2=71250&view=diff
==============================================================================
--- branches/ros-branch-0_4_1/reactos/win32ss/user/ntuser/class.c       
[iso-8859-1] (original)
+++ branches/ros-branch-0_4_1/reactos/win32ss/user/ntuser/class.c       
[iso-8859-1] Tue May  3 20:08:25 2016
@@ -267,8 +267,11 @@
 
     if (Class->spicn)
         UserDereferenceObject(Class->spicn);
-    if (Class->spcur)
+    if (Class->spcur && !UserObjectInDestroy(Class->spcur))
+    {
         UserDereferenceObject(Class->spcur);
+        Class->spcur = NULL;
+    }
     if (Class->spicnSm)
     {
         UserDereferenceObject(Class->spicnSm);

Modified: branches/ros-branch-0_4_1/reactos/win32ss/user/ntuser/cursoricon.c
URL: 
http://svn.reactos.org/svn/reactos/branches/ros-branch-0_4_1/reactos/win32ss/user/ntuser/cursoricon.c?rev=71250&r1=71249&r2=71250&view=diff
==============================================================================
--- branches/ros-branch-0_4_1/reactos/win32ss/user/ntuser/cursoricon.c  
[iso-8859-1] (original)
+++ branches/ros-branch-0_4_1/reactos/win32ss/user/ntuser/cursoricon.c  
[iso-8859-1] Tue May  3 20:08:25 2016
@@ -1086,11 +1086,14 @@
            goto leave;
         }
 
+        pcurOld->CURSORF_flags &= ~CURSORF_CURRENT;
+
         /* See if it was destroyed in the meantime */
         if (UserObjectInDestroy(hOldCursor))
-            hOldCursor = NULL;
-        pcurOld->CURSORF_flags &= ~CURSORF_CURRENT;
-        UserDereferenceObject(pcurOld);
+        {
+            UserDereferenceObject(pcurOld);
+            pcurOld = NULL;
+        }
     }
 
 leave:

Modified: branches/ros-branch-0_4_1/reactos/win32ss/user/ntuser/msgqueue.c
URL: 
http://svn.reactos.org/svn/reactos/branches/ros-branch-0_4_1/reactos/win32ss/user/ntuser/msgqueue.c?rev=71250&r1=71249&r2=71250&view=diff
==============================================================================
--- branches/ros-branch-0_4_1/reactos/win32ss/user/ntuser/msgqueue.c    
[iso-8859-1] (original)
+++ branches/ros-branch-0_4_1/reactos/win32ss/user/ntuser/msgqueue.c    
[iso-8859-1] Tue May  3 20:08:25 2016
@@ -2288,8 +2288,12 @@
            IntGetSysCursorInfo()->CurrentCursorObject = NULL;
        }
 
-       TRACE("DereferenceObject pCursor\n");
-       UserDereferenceObject(pCursor);
+       if (pCursor && UserObjectInDestroy(UserHMGetHandle(pCursor)))
+       {
+           TRACE("DereferenceObject pCursor\n");
+           UserDereferenceObject(pCursor);
+           pCursor = NULL;
+       }
    }
 
    if (gpqForeground == MessageQueue)


Reply via email to