Alexandre Julliard : gdi32: Implement DeleteDC in the path driver.
Alexandre Julliard
julliard at winehq.org
Tue Jun 21 11:13:47 CDT 2016
Module: wine
Branch: master
Commit: 234daa752270899a13bd12bc01fbca63c05c7486
URL: http://source.winehq.org/git/wine.git/?a=commit;h=234daa752270899a13bd12bc01fbca63c05c7486
Author: Alexandre Julliard <julliard at winehq.org>
Date: Tue Jun 21 14:46:04 2016 +0900
gdi32: Implement DeleteDC in the path driver.
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/gdi32/path.c | 14 ++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)
diff --git a/dlls/gdi32/path.c b/dlls/gdi32/path.c
index de4193f..c6b87d4 100644
--- a/dlls/gdi32/path.c
+++ b/dlls/gdi32/path.c
@@ -99,7 +99,7 @@ struct path_physdev
static inline struct path_physdev *get_path_physdev( PHYSDEV dev )
{
- return (struct path_physdev *)dev;
+ return CONTAINING_RECORD( dev, struct path_physdev, dev );
}
void free_gdi_path( struct gdi_path *path )
@@ -750,13 +750,9 @@ static BOOL pathdrv_BeginPath( PHYSDEV dev )
*/
static BOOL pathdrv_AbortPath( PHYSDEV dev )
{
- struct path_physdev *physdev = get_path_physdev( dev );
DC *dc = get_dc_ptr( dev->hdc );
- if (!dc) return FALSE;
- free_gdi_path( physdev->path );
- pop_dc_driver( dc, &path_driver );
- HeapFree( GetProcessHeap(), 0, physdev );
+ path_driver.pDeleteDC( pop_dc_driver( dc, &path_driver ));
release_dc_ptr( dc );
return TRUE;
}
@@ -770,7 +766,6 @@ static BOOL pathdrv_EndPath( PHYSDEV dev )
struct path_physdev *physdev = get_path_physdev( dev );
DC *dc = get_dc_ptr( dev->hdc );
- if (!dc) return FALSE;
dc->path = physdev->path;
pop_dc_driver( dc, &path_driver );
HeapFree( GetProcessHeap(), 0, physdev );
@@ -801,7 +796,10 @@ static BOOL pathdrv_CreateDC( PHYSDEV *dev, LPCWSTR driver, LPCWSTR device,
*/
static BOOL pathdrv_DeleteDC( PHYSDEV dev )
{
- assert( 0 ); /* should never be called */
+ struct path_physdev *physdev = get_path_physdev( dev );
+
+ free_gdi_path( physdev->path );
+ HeapFree( GetProcessHeap(), 0, physdev );
return TRUE;
}
More information about the wine-cvs
mailing list