Alexandre Julliard : gdi32: Don't free a driver when it' s popped from the stack.
Alexandre Julliard
julliard at winehq.org
Wed Sep 7 12:35:29 CDT 2011
Module: wine
Branch: master
Commit: 9a63a25b9d2dc55d01b36863225b67daa2467bc6
URL: http://source.winehq.org/git/wine.git/?a=commit;h=9a63a25b9d2dc55d01b36863225b67daa2467bc6
Author: Alexandre Julliard <julliard at winehq.org>
Date: Wed Sep 7 12:08:16 2011 +0200
gdi32: Don't free a driver when it's popped from the stack.
---
dlls/gdi32/dc.c | 8 ++++++--
1 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/dlls/gdi32/dc.c b/dlls/gdi32/dc.c
index 45bff98..286fa0e 100644
--- a/dlls/gdi32/dc.c
+++ b/dlls/gdi32/dc.c
@@ -181,7 +181,12 @@ void free_dc_ptr( DC *dc )
{
assert( dc->refcount == 1 );
- while (dc->physDev != &dc->nulldrv) pop_dc_driver( dc, dc->physDev );
+ while (dc->physDev != &dc->nulldrv)
+ {
+ PHYSDEV physdev = dc->physDev;
+ pop_dc_driver( dc, physdev );
+ physdev->funcs->pDeleteDC( physdev );
+ }
free_gdi_handle( dc->hSelf );
free_dc_state( dc );
}
@@ -266,7 +271,6 @@ void pop_dc_driver( DC * dc, PHYSDEV physdev )
assert( physdev == dc->physDev );
assert( physdev != &dc->nulldrv );
dc->physDev = physdev->next;
- physdev->funcs->pDeleteDC( physdev );
}
More information about the wine-cvs
mailing list