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
--- 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;
--- 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;
--- 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);
}
--- 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)