window parent handle -> pointer adaptions
Modified: trunk/reactos/subsys/win32k/include/userfuncs.h
Modified: trunk/reactos/subsys/win32k/ntuser/painting.c
Modified: trunk/reactos/subsys/win32k/ntuser/vis.c
Modified: trunk/reactos/subsys/win32k/ntuser/windc.c

Modified: trunk/reactos/subsys/win32k/include/userfuncs.h
--- trunk/reactos/subsys/win32k/include/userfuncs.h	2005-09-06 14:09:22 UTC (rev 17697)
+++ trunk/reactos/subsys/win32k/include/userfuncs.h	2005-09-06 14:19:03 UTC (rev 17698)
@@ -1,7 +1,12 @@
 #ifndef _WIN32K_USERFUNCS_H
 #define _WIN32K_USERFUNCS_H
 
+//currently unused
+#define ASSERT_REFS(obj) 
 
+#define UserReferenceWindowObjectCo(o) IntReferenceWindowObject(o)
+#define UserDereferenceWindowObjectCo(o) IntReleaseWindowObject(o)
+
 extern PUSER_HANDLE_TABLE gHandleTable;
 
 

Modified: trunk/reactos/subsys/win32k/ntuser/painting.c
--- trunk/reactos/subsys/win32k/ntuser/painting.c	2005-09-06 14:09:22 UTC (rev 17697)
+++ trunk/reactos/subsys/win32k/ntuser/painting.c	2005-09-06 14:19:03 UTC (rev 17698)
@@ -405,20 +405,18 @@
 BOOL FASTCALL
 IntIsWindowDrawable(PWINDOW_OBJECT Window)
 {
-   PWINDOW_OBJECT Old, Wnd = Window;
+   PWINDOW_OBJECT Wnd = Window;
 
-   IntReferenceWindowObject(Wnd);
    do
    {
       if (!(Wnd->Style & WS_VISIBLE) ||
           ((Wnd->Style & WS_MINIMIZE) && (Wnd != Window)))
       {
-         IntReleaseWindowObject(Wnd);
          return FALSE;
       }
-      Old = Wnd;
-      Wnd = IntGetParentObject(Wnd);
-      IntReleaseWindowObject(Old);
+
+      Wnd = Wnd->Parent;
+      
    } while(Wnd);
 
    return TRUE;

Modified: trunk/reactos/subsys/win32k/ntuser/vis.c
--- trunk/reactos/subsys/win32k/ntuser/vis.c	2005-09-06 14:09:22 UTC (rev 17697)
+++ trunk/reactos/subsys/win32k/ntuser/vis.c	2005-09-06 14:19:03 UTC (rev 17698)
@@ -77,7 +77,7 @@
     */
 
    PreviousWindow = Window;
-   CurrentWindow = IntGetParentObject(Window);
+   CurrentWindow = Window->Parent;
    while (CurrentWindow)
    {
       if (!(CurrentWindow->Style & WS_VISIBLE))
@@ -113,8 +113,7 @@
       }
 
       PreviousWindow = CurrentWindow;
-      CurrentWindow = IntGetParentObject(CurrentWindow);
-      IntReleaseWindowObject(PreviousWindow);
+      CurrentWindow = CurrentWindow->Parent;
    }
 
    if (ClipChildren)
@@ -159,19 +158,23 @@
    HRGN Temp;
    PWINDOW_OBJECT Parent;
 
+   ASSERT_REFS(Window);
+
    Temp = NtGdiCreateRectRgn(0, 0, 0, 0);
    NtGdiCombineRgn(Temp, NewlyExposed, NULL, RGN_COPY);
 
-   Parent = IntGetParentObject(Window);
+   Parent = Window->Parent;
    if(Parent)
    {
       NtGdiOffsetRgn(Temp,
                      Window->WindowRect.left - Parent->ClientRect.left,
                      Window->WindowRect.top - Parent->ClientRect.top);
-     co_UserRedrawWindow(Parent, NULL, Temp,
+                     
+      UserReferenceWindowObjectCo(Parent);
+      co_UserRedrawWindow(Parent, NULL, Temp,
                      RDW_FRAME | RDW_ERASE | RDW_INVALIDATE |
                      RDW_ALLCHILDREN);
-     IntReleaseWindowObject(Parent);
+      UserDereferenceWindowObjectCo(Parent);
    }
    NtGdiDeleteObject(Temp);
 }

Modified: trunk/reactos/subsys/win32k/ntuser/windc.c
--- trunk/reactos/subsys/win32k/ntuser/windc.c	2005-09-06 14:09:22 UTC (rev 17697)
+++ trunk/reactos/subsys/win32k/ntuser/windc.c	2005-09-06 14:19:03 UTC (rev 17698)
@@ -278,7 +278,7 @@
    {
       PWINDOW_OBJECT Parent;
 
-      Parent = IntGetParentObject(Window);
+      Parent = Window->Parent;
       if(!Parent)
       {
         hRgnVisible = NULL;
@@ -430,7 +430,7 @@
       Flags = (Flags & ~DCX_CLIPCHILDREN) | DCX_CACHE;
     }
 
-  Parent = (Window ? IntGetParentObject(Window) : NULL);
+  Parent = (Window ? Window->Parent : NULL);
 
   if (NULL == Window || !(Window->Style & WS_CHILD) || NULL == Parent)
     {
@@ -450,9 +450,6 @@
         }
     }
 
-  if(Parent)
-    IntReleaseWindowObject(Parent);
-
   DcxFlags = Flags & DCX_CACHECOMPAREMASK;
 
   if (Flags & DCX_CACHE)