gdi32: Don't free a driver when it's popped from the stack.

This commit is contained in:
Alexandre Julliard 2011-09-07 12:08:16 +02:00
parent f4e9bdb904
commit 9a63a25b9d
1 changed files with 6 additions and 2 deletions

View File

@ -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 );
}