From: "Stefan Dösinger" Subject: [PATCH 1/5] ddraw/tests: Don't leak overlay if DWM cannot be disabled. Message-Id: <20200123094543.214243-1-stefan@codeweavers.com> Date: Thu, 23 Jan 2020 10:45:39 +0100 This fixes test_caps on my GeForce 650M Windows 10 machine. Signed-off-by: Stefan Dösinger --- There's a deeper problem with test_caps() though - that this leak causes it to fail is just a symptom. ddraw reports different caps after creating a surface, presumably because some internal plugins get loaded. So the results of test_caps() are potentially misleading. --- dlls/ddraw/tests/ddraw1.c | 3 ++- dlls/ddraw/tests/ddraw2.c | 3 ++- dlls/ddraw/tests/ddraw4.c | 3 ++- dlls/ddraw/tests/ddraw7.c | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/dlls/ddraw/tests/ddraw1.c b/dlls/ddraw/tests/ddraw1.c index c10be66236a..26dd8140e4c 100644 --- a/dlls/ddraw/tests/ddraw1.c +++ b/dlls/ddraw/tests/ddraw1.c @@ -9478,10 +9478,11 @@ static void test_overlay_rect(void) ok(!pos_x, "Got unexpected pos_x %d.\n", pos_x); ok(!pos_y, "Got unexpected pos_y %d.\n", pos_y); - IDirectDrawSurface_Release(overlay); done: if (primary) IDirectDrawSurface_Release(primary); + if (overlay) + IDirectDrawSurface_Release(overlay); IDirectDraw_Release(ddraw); DestroyWindow(window); } diff --git a/dlls/ddraw/tests/ddraw2.c b/dlls/ddraw/tests/ddraw2.c index 8d4d44863a1..8e37243e6c1 100644 --- a/dlls/ddraw/tests/ddraw2.c +++ b/dlls/ddraw/tests/ddraw2.c @@ -10180,10 +10180,11 @@ static void test_overlay_rect(void) ok(!pos_x, "Got unexpected pos_x %d.\n", pos_x); ok(!pos_y, "Got unexpected pos_y %d.\n", pos_y); - IDirectDrawSurface_Release(overlay); done: if (primary) IDirectDrawSurface_Release(primary); + if (overlay) + IDirectDrawSurface_Release(overlay); IDirectDraw2_Release(ddraw); DestroyWindow(window); } diff --git a/dlls/ddraw/tests/ddraw4.c b/dlls/ddraw/tests/ddraw4.c index 1a16e2d571e..b6dbd63c885 100644 --- a/dlls/ddraw/tests/ddraw4.c +++ b/dlls/ddraw/tests/ddraw4.c @@ -12058,10 +12058,11 @@ static void test_overlay_rect(void) ok(!pos_x, "Got unexpected pos_x %d.\n", pos_x); ok(!pos_y, "Got unexpected pos_y %d.\n", pos_y); - IDirectDrawSurface4_Release(overlay); done: if (primary) IDirectDrawSurface4_Release(primary); + if (overlay) + IDirectDrawSurface4_Release(overlay); IDirectDraw4_Release(ddraw); DestroyWindow(window); } diff --git a/dlls/ddraw/tests/ddraw7.c b/dlls/ddraw/tests/ddraw7.c index 20a1bc5f3af..be6aca2cec9 100644 --- a/dlls/ddraw/tests/ddraw7.c +++ b/dlls/ddraw/tests/ddraw7.c @@ -12049,10 +12049,11 @@ static void test_overlay_rect(void) ok(!pos_x, "Got unexpected pos_x %d.\n", pos_x); ok(!pos_y, "Got unexpected pos_y %d.\n", pos_y); - IDirectDrawSurface7_Release(overlay); done: if (primary) IDirectDrawSurface7_Release(primary); + if (overlay) + IDirectDrawSurface7_Release(overlay); IDirectDraw7_Release(ddraw); DestroyWindow(window); } -- 2.24.1