From 5f7e4ce642d4deb615e09a3411dc7f416e7e4c22 Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Sat, 21 May 2016 09:54:01 +0900 Subject: [PATCH] user32: Fix refcounting of window DCEs. Signed-off-by: Alexandre Julliard --- dlls/user32/painting.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/dlls/user32/painting.c b/dlls/user32/painting.c index 9e5bc0aa89d..c0c92d8590f 100644 --- a/dlls/user32/painting.c +++ b/dlls/user32/painting.c @@ -311,7 +311,6 @@ static struct dce *get_window_dce( HWND hwnd ) { win->dce = dce; dce->hwnd = hwnd; - dce->count++; list_add_tail( &dce_list, &dce->entry ); } WIN_ReleasePtr( win ); @@ -501,14 +500,10 @@ static BOOL CALLBACK dc_hook( HDC hDC, WORD code, DWORD_PTR data, LPARAM lParam WARN("DC is not in use!\n"); break; case DCHC_DELETEDC: - /* - * Windows will not let you delete a DC that is busy - * (between GetDC and ReleaseDC) - */ USER_Lock(); - if (dce->count > 1) + if (!(dce->flags & DCX_CACHE)) { - WARN("Application trying to delete a busy DC %p\n", dce->hdc); + WARN("Application trying to delete an owned DC %p\n", dce->hdc); retv = FALSE; } else -- 2.11.4.GIT