[03/11] ddraw/tests: Make ddraw and d3d local vars that are used in more than one test global.

Octavian Voicu octavian.voicu at gmail.com
Mon Nov 7 16:27:06 CST 2011


--
All tests use at least some global vars (eg. window), while some local vars
shadow global ones. This makes things more consistent across tests and
less confusing by having most of them in global space.

Cleanup code has been revised to set them to NULL.
---
 dlls/ddraw/tests/visual.c |   60 ++++++++++++++++++++++++++++++++------------
 1 files changed, 43 insertions(+), 17 deletions(-)

diff --git a/dlls/ddraw/tests/visual.c b/dlls/ddraw/tests/visual.c
index 75dd787..eef09ff 100644
--- a/dlls/ddraw/tests/visual.c
+++ b/dlls/ddraw/tests/visual.c
@@ -31,11 +31,16 @@ static IDirect3D7          *Direct3D;
 static IDirect3DDevice7    *Direct3DDevice;
 
 static IDirectDraw *DirectDraw1;
-static IDirectDrawSurface *Surface1;
+static IDirectDraw4 *DirectDraw4;
+static IDirectDrawSurface *Primary1, *Surface1;
+static IDirectDrawSurface4 *Primary4;
 static IDirect3D *Direct3D1;
+static IDirect3D3 *Direct3D3;
 static IDirect3DDevice *Direct3DDevice1;
+static IDirect3DDevice3 *Direct3DDevice3;
 static IDirect3DExecuteBuffer *ExecuteBuffer;
 static IDirect3DViewport *Viewport;
+static IDirect3DViewport3 *Viewport3;
 
 static BOOL refdevice = FALSE;
 
@@ -152,12 +157,18 @@ static BOOL createObjects(void)
 
 static void releaseObjects(void)
 {
-    IDirect3DDevice7_Release(Direct3DDevice);
-    IDirect3D7_Release(Direct3D);
-    IDirectDrawSurface7_Release(depth_buffer);
-    IDirectDrawSurface7_Release(Surface);
-    IDirectDraw7_Release(DirectDraw);
-    DestroyWindow(window);
+    if (Direct3DDevice) IDirect3DDevice7_Release(Direct3DDevice);
+    Direct3DDevice = NULL;
+    if (Direct3D) IDirect3D7_Release(Direct3D);
+    Direct3D = NULL;
+    if (depth_buffer) IDirectDrawSurface7_Release(depth_buffer);
+    depth_buffer = NULL;
+    if (Surface) IDirectDrawSurface7_Release(Surface);
+    Surface = NULL;
+    if (DirectDraw) IDirectDraw7_Release(DirectDraw);
+    DirectDraw = NULL;
+    if (window) DestroyWindow(window);
+    window = NULL;
 }
 
 static DWORD getPixelColor(IDirect3DDevice7 *device, UINT x, UINT y)
@@ -1227,12 +1238,19 @@ static BOOL D3D1_createObjects(void)
 static void D3D1_releaseObjects(void)
 {
     if(ExecuteBuffer) IDirect3DExecuteBuffer_Release(ExecuteBuffer);
+    ExecuteBuffer = NULL;
     if(Surface1) IDirectDrawSurface_Release(Surface1);
+    Surface1 = NULL;
     if(Viewport) IDirect3DViewport_Release(Viewport);
+    Viewport = NULL;
     if(Direct3DDevice1) IDirect3DDevice_Release(Direct3DDevice1);
+    Direct3DDevice1 = NULL;
     if(Direct3D1) IDirect3D_Release(Direct3D1);
+    Direct3D1 = NULL;
     if(DirectDraw1) IDirectDraw_Release(DirectDraw1);
+    DirectDraw1 = NULL;
     if(window) DestroyWindow(window);
+    window = NULL;
 }
 
 static DWORD D3D1_getPixelColor(IDirectDraw *DirectDraw1, IDirectDrawSurface *Surface, UINT x, UINT y)
@@ -2200,13 +2218,7 @@ out:
 static void D3D3_ViewportClearTest(void)
 {
     HRESULT hr;
-    IDirectDraw *DirectDraw1 = NULL;
-    IDirectDraw4 *DirectDraw4 = NULL;
-    IDirectDrawSurface4 *Primary4 = NULL;
-    IDirect3D3 *Direct3D3 = NULL;
-    IDirect3DViewport3 *Viewport3 = NULL;
     IDirect3DViewport3 *SmallViewport3 = NULL;
-    IDirect3DDevice3 *Direct3DDevice3 = NULL;
     WNDCLASS wc = {0};
     DDSURFACEDESC2 ddsd;
     D3DVIEWPORT2 vp_data;
@@ -2401,13 +2413,21 @@ static void D3D3_ViewportClearTest(void)
     out:
 
     if (SmallViewport3) IDirect3DViewport3_Release(SmallViewport3);
+
     if (Viewport3) IDirect3DViewport3_Release(Viewport3);
+    Viewport3 = NULL;
     if (Direct3DDevice3) IDirect3DDevice3_Release(Direct3DDevice3);
+    Direct3DDevice3 = NULL;
     if (Direct3D3) IDirect3D3_Release(Direct3D3);
+    Direct3D3 = NULL;
     if (Primary4) IDirectDrawSurface4_Release(Primary4);
+    Primary4 = NULL;
     if (DirectDraw1) IDirectDraw_Release(DirectDraw1);
+    DirectDraw1 = NULL;
     if (DirectDraw4) IDirectDraw4_Release(DirectDraw4);
-    if(window) DestroyWindow(window);
+    DirectDraw4 = NULL;
+    if (window) DestroyWindow(window);
+    window = NULL;
 }
 
 static void p8_surface_fill_rect(IDirectDrawSurface *dest, UINT x, UINT y, UINT w, UINT h, BYTE colorindex)
@@ -2763,10 +2783,15 @@ static void p8_primary_test(void)
     out:
 
     if(ddprimpal) IDirectDrawPalette_Release(ddprimpal);
+
     if(Surface1) IDirectDrawSurface_Release(Surface1);
+    Surface1 = NULL;
     if(Primary1) IDirectDrawSurface_Release(Primary1);
+    Primary1 = NULL;
     if(DirectDraw1) IDirectDraw_Release(DirectDraw1);
+    DirectDraw1 = NULL;
     if(window) DestroyWindow(window);
+    window = NULL;
 }
 
 static void cubemap_test(IDirect3DDevice7 *device)
@@ -3065,9 +3090,6 @@ static void depth_clamp_test(IDirect3DDevice7 *device)
 static void DX1_BackBufferFlipTest(void)
 {
     HRESULT hr;
-    IDirectDraw *DirectDraw1 = NULL;
-    IDirectDrawSurface *Primary1 = NULL;
-    IDirectDrawSurface *Surface1 = NULL;
     WNDCLASS wc = {0};
     DDSURFACEDESC ddsd;
     DDBLTFX ddbltfx;
@@ -3177,10 +3199,14 @@ static void DX1_BackBufferFlipTest(void)
         if (attached)
             IDirectDrawSurface_DeleteAttachedSurface(Primary1, 0, Surface1);
         IDirectDrawSurface_Release(Surface1);
+        Surface1 = NULL;
     }
     if (Primary1) IDirectDrawSurface_Release(Primary1);
+    Primary1 = NULL;
     if (DirectDraw1) IDirectDraw_Release(DirectDraw1);
+    DirectDraw1 = NULL;
     if (window) DestroyWindow(window);
+    window = NULL;
 }
 
 START_TEST(visual)
-- 
1.7.4.1




More information about the wine-patches mailing list