From: Magnus Olsen Date: Sun, 30 Oct 2005 16:14:42 +0000 (+0000) Subject: Fix broke SVN after me, thx to it I found wrong ref was release in different place... X-Git-Tag: backups/ros-branch-0_2_9@19949~998 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=816321f87812db3eb00b5c8cd7514766ca61b0c8 Fix broke SVN after me, thx to it I found wrong ref was release in different place fixed svn path=/trunk/; revision=18887 --- diff --git a/reactos/lib/ddraw/main/clipper_main.c b/reactos/lib/ddraw/main/clipper_main.c index d8d45a8cfc3..28410ebdd6d 100644 --- a/reactos/lib/ddraw/main/clipper_main.c +++ b/reactos/lib/ddraw/main/clipper_main.c @@ -13,8 +13,8 @@ ULONG WINAPI Main_DirectDrawClipper_Release(LPDIRECTDRAWCLIPPER iface) { - IDirectDrawSurfaceImpl* This = (IDirectDrawSurfaceImpl*)iface; - ULONG ref = InterlockedDecrement(&This->ref); + IDirectDrawImpl* This = (IDirectDrawImpl*)iface; + ULONG ref = InterlockedDecrement(&This->DirectDrawGlobal.dwRefCnt); if (ref == 0) HeapFree(GetProcessHeap(), 0, This); diff --git a/reactos/lib/ddraw/main/color_main.c b/reactos/lib/ddraw/main/color_main.c index ba36a71441a..47e7aafffed 100644 --- a/reactos/lib/ddraw/main/color_main.c +++ b/reactos/lib/ddraw/main/color_main.c @@ -22,8 +22,8 @@ Main_DirectDrawColorControl_AddRef(LPDIRECTDRAWCOLORCONTROL iface) ULONG WINAPI Main_DirectDrawColorControl_Release(LPDIRECTDRAWCOLORCONTROL iface) { - IDirectDrawSurfaceImpl* This = (IDirectDrawSurfaceImpl*)iface; - ULONG ref = InterlockedDecrement(&This->ref); + IDirectDrawImpl* This = (IDirectDrawImpl*)iface; + ULONG ref = InterlockedDecrement(&This->DirectDrawGlobal.dwRefCnt); if (ref == 0) HeapFree(GetProcessHeap(), 0, This); diff --git a/reactos/lib/ddraw/main/gamma_main.c b/reactos/lib/ddraw/main/gamma_main.c index 7d95cc918ab..8a5bc5c0ff0 100644 --- a/reactos/lib/ddraw/main/gamma_main.c +++ b/reactos/lib/ddraw/main/gamma_main.c @@ -22,8 +22,8 @@ Main_DirectDrawGammaControl_AddRef(LPDIRECTDRAWGAMMACONTROL iface) ULONG WINAPI Main_DirectDrawGammaControl_Release(LPDIRECTDRAWGAMMACONTROL iface) { - IDirectDrawSurfaceImpl* This = (IDirectDrawSurfaceImpl*)iface; - ULONG ref = InterlockedDecrement(&This->ref); + IDirectDrawImpl* This = (IDirectDrawImpl*)iface; + ULONG ref = InterlockedDecrement(&This->DirectDrawGlobal.dwRefCnt); if (ref == 0) HeapFree(GetProcessHeap(), 0, This); diff --git a/reactos/lib/ddraw/main/palette_main.c b/reactos/lib/ddraw/main/palette_main.c index f3ffc8ac94f..fd8f4a81fad 100644 --- a/reactos/lib/ddraw/main/palette_main.c +++ b/reactos/lib/ddraw/main/palette_main.c @@ -21,8 +21,8 @@ Main_DirectDrawPalette_Release(LPDIRECTDRAWPALETTE iface) ULONG WINAPI Main_DirectDrawPalette_AddRef(LPDIRECTDRAWPALETTE iface) { - IDirectDrawSurfaceImpl* This = (IDirectDrawSurfaceImpl*)iface; - ULONG ref = InterlockedDecrement(&This->ref); + IDirectDrawImpl* This = (IDirectDrawImpl*)iface; + ULONG ref = InterlockedDecrement(&This->DirectDrawGlobal.dwRefCnt); if (ref == 0) HeapFree(GetProcessHeap(), 0, This); diff --git a/reactos/lib/ddraw/main/surface_main.c b/reactos/lib/ddraw/main/surface_main.c index da62043437a..39c547c3f06 100644 --- a/reactos/lib/ddraw/main/surface_main.c +++ b/reactos/lib/ddraw/main/surface_main.c @@ -94,13 +94,14 @@ HRESULT WINAPI Main_DDrawSurface_Initialize (LPDIRECTDRAWSURFACE7 iface, LPDIREC ULONG WINAPI Main_DDrawSurface_AddRef(LPDIRECTDRAWSURFACE7 iface) { IDirectDrawSurfaceImpl* This = (IDirectDrawSurfaceImpl*)iface; - return InterlockedIncrement(&This->ref); + + return InterlockedIncrement(&This->owner->DirectDrawGlobal.dsList->dwIntRefCnt); } ULONG WINAPI Main_DDrawSurface_Release(LPDIRECTDRAWSURFACE7 iface) { IDirectDrawSurfaceImpl* This = (IDirectDrawSurfaceImpl*)iface; - ULONG ref = InterlockedDecrement(&This->ref); + ULONG ref = InterlockedDecrement(&This->owner->DirectDrawGlobal.dsList->dwIntRefCnt); if (ref == 0) HeapFree(GetProcessHeap(), 0, This); diff --git a/reactos/lib/ddraw/rosdraw.h b/reactos/lib/ddraw/rosdraw.h index f7b1e0160b6..4d13260b607 100644 --- a/reactos/lib/ddraw/rosdraw.h +++ b/reactos/lib/ddraw/rosdraw.h @@ -41,6 +41,10 @@ typedef struct IDirectDrawImpl* owner; + DDRAWI_DDRAWSURFACE_GBL Global; + DDRAWI_DDRAWSURFACE_MORE More; + DDRAWI_DDRAWSURFACE_LCL Local; + } IDirectDrawSurfaceImpl; /******** Clipper Object ********/