Module: wine Branch: master Commit: 5f7e4ce642d4deb615e09a3411dc7f416e7e4c22 URL: http://source.winehq.org/git/wine.git/?a=commit;h=5f7e4ce642d4deb615e09a3411...
Author: Alexandre Julliard julliard@winehq.org Date: Sat May 21 09:54:01 2016 +0900
user32: Fix refcounting of window DCEs.
Signed-off-by: Alexandre Julliard julliard@winehq.org
---
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 9e5bc0a..c0c92d8 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