[PATCH v2 11/11] gdi32: Convert a few uses of get_dc_ptr() to get_physdev_dc().

Huw Davies huw at codeweavers.com
Fri Jul 29 09:09:36 CDT 2016


In these cases we have the PHYSDEV meaning we own the DC already.

Signed-off-by: Huw Davies <huw at codeweavers.com>
---
 dlls/gdi32/bitblt.c      | 11 ++---------
 dlls/gdi32/enhmfdrv/dc.c | 13 ++++---------
 dlls/gdi32/freetype.c    |  4 +---
 dlls/gdi32/path.c        |  6 ++----
 4 files changed, 9 insertions(+), 25 deletions(-)

diff --git a/dlls/gdi32/bitblt.c b/dlls/gdi32/bitblt.c
index ebed7af..3a8f0f4 100644
--- a/dlls/gdi32/bitblt.c
+++ b/dlls/gdi32/bitblt.c
@@ -250,7 +250,7 @@ void get_mono_dc_colors( DC *dc, BITMAPINFO *info, int count )
 BOOL nulldrv_StretchBlt( PHYSDEV dst_dev, struct bitblt_coords *dst,
                          PHYSDEV src_dev, struct bitblt_coords *src, DWORD rop )
 {
-    DC *dc_src, *dc_dst = get_nulldrv_dc( dst_dev );
+    DC *dc_src = get_physdev_dc( src_dev ), *dc_dst = get_nulldrv_dc( dst_dev );
     char src_buffer[FIELD_OFFSET( BITMAPINFO, bmiColors[256] )];
     char dst_buffer[FIELD_OFFSET( BITMAPINFO, bmiColors[256] )];
     BITMAPINFO *src_info = (BITMAPINFO *)src_buffer;
@@ -258,13 +258,9 @@ BOOL nulldrv_StretchBlt( PHYSDEV dst_dev, struct bitblt_coords *dst,
     DWORD err;
     struct gdi_image_bits bits;
 
-    if (!(dc_src = get_dc_ptr( src_dev->hdc ))) return FALSE;
     src_dev = GET_DC_PHYSDEV( dc_src, pGetImage );
     if (src_dev->funcs->pGetImage( src_dev, src_info, &bits, src ))
-    {
-        release_dc_ptr( dc_src );
         return FALSE;
-    }
 
     dst_dev = GET_DC_PHYSDEV( dc_dst, pPutImage );
     copy_bitmapinfo( dst_info, src_info );
@@ -305,7 +301,6 @@ BOOL nulldrv_StretchBlt( PHYSDEV dst_dev, struct bitblt_coords *dst,
     }
 
     if (bits.free) bits.free( &bits );
-    release_dc_ptr( dc_src );
     return !err;
 }
 
@@ -313,7 +308,7 @@ BOOL nulldrv_StretchBlt( PHYSDEV dst_dev, struct bitblt_coords *dst,
 BOOL nulldrv_AlphaBlend( PHYSDEV dst_dev, struct bitblt_coords *dst,
                          PHYSDEV src_dev, struct bitblt_coords *src, BLENDFUNCTION func )
 {
-    DC *dc_src, *dc_dst = get_nulldrv_dc( dst_dev );
+    DC *dc_src = get_physdev_dc( src_dev ), *dc_dst = get_nulldrv_dc( dst_dev );
     char src_buffer[FIELD_OFFSET( BITMAPINFO, bmiColors[256] )];
     char dst_buffer[FIELD_OFFSET( BITMAPINFO, bmiColors[256] )];
     BITMAPINFO *src_info = (BITMAPINFO *)src_buffer;
@@ -321,7 +316,6 @@ BOOL nulldrv_AlphaBlend( PHYSDEV dst_dev, struct bitblt_coords *dst,
     DWORD err;
     struct gdi_image_bits bits;
 
-    if (!(dc_src = get_dc_ptr( src_dev->hdc ))) return FALSE;
     src_dev = GET_DC_PHYSDEV( dc_src, pGetImage );
     err = src_dev->funcs->pGetImage( src_dev, src_info, &bits, src );
     if (err) goto done;
@@ -345,7 +339,6 @@ BOOL nulldrv_AlphaBlend( PHYSDEV dst_dev, struct bitblt_coords *dst,
 
     if (bits.free) bits.free( &bits );
 done:
-    release_dc_ptr( dc_src );
     if (err) SetLastError( err );
     return !err;
 }
diff --git a/dlls/gdi32/enhmfdrv/dc.c b/dlls/gdi32/enhmfdrv/dc.c
index 00f4d65..64c6136 100644
--- a/dlls/gdi32/enhmfdrv/dc.c
+++ b/dlls/gdi32/enhmfdrv/dc.c
@@ -52,7 +52,7 @@ BOOL EMFDRV_RestoreDC( PHYSDEV dev, INT level )
 {
     PHYSDEV next = GET_NEXT_PHYSDEV( dev, pRestoreDC );
     EMFDRV_PDEVICE* physDev = get_emf_physdev( dev );
-    DC *dc = get_dc_ptr( dev->hdc );
+    DC *dc = get_physdev_dc( dev );
     EMRRESTOREDC emr;
     BOOL ret;
 
@@ -63,7 +63,6 @@ BOOL EMFDRV_RestoreDC( PHYSDEV dev, INT level )
         emr.iRelative = level;
     else
         emr.iRelative = level - dc->saveLevel - 1;
-    release_dc_ptr( dc );
 
     physDev->restoring++;
     ret = next->funcs->pRestoreDC( next, level );
@@ -433,7 +432,7 @@ BOOL EMFDRV_BeginPath( PHYSDEV dev )
     EMFDRV_PDEVICE *physDev = get_emf_physdev( dev );
     PHYSDEV next = GET_NEXT_PHYSDEV( dev, pBeginPath );
     EMRBEGINPATH emr;
-    DC *dc;
+    DC *dc = get_physdev_dc( dev );
 
     emr.emr.iType = EMR_BEGINPATH;
     emr.emr.nSize = sizeof(emr);
@@ -442,10 +441,8 @@ BOOL EMFDRV_BeginPath( PHYSDEV dev )
     if (physDev->path) return TRUE;  /* already open */
 
     if (!next->funcs->pBeginPath( next )) return FALSE;
-    dc = get_dc_ptr( dev->hdc );
     push_dc_driver( &dc->physDev, &physDev->pathdev, &emfpath_driver );
     physDev->path = TRUE;
-    release_dc_ptr( dc );
     return TRUE;
 }
 
@@ -519,10 +516,9 @@ static BOOL emfpathdrv_AbortPath( PHYSDEV dev )
 {
     PHYSDEV emfdev = get_emfdev( dev );
     PHYSDEV next = GET_NEXT_PHYSDEV( dev, pAbortPath );
-    DC *dc = get_dc_ptr( dev->hdc );
+    DC *dc = get_physdev_dc( dev );
 
     emfpath_driver.pDeleteDC( pop_dc_driver( dc, &emfpath_driver ));
-    release_dc_ptr( dc );
     emfdev->funcs->pAbortPath( emfdev );
     return next->funcs->pAbortPath( next );
 }
@@ -641,10 +637,9 @@ static BOOL emfpathdrv_EndPath( PHYSDEV dev )
 {
     PHYSDEV emfdev = get_emfdev( dev );
     PHYSDEV next = GET_NEXT_PHYSDEV( dev, pEndPath );
-    DC *dc = get_dc_ptr( dev->hdc );
+    DC *dc = get_physdev_dc( dev );
 
     emfpath_driver.pDeleteDC( pop_dc_driver( dc, &emfpath_driver ));
-    release_dc_ptr( dc );
     emfdev->funcs->pEndPath( emfdev );
     return next->funcs->pEndPath( next );
 }
diff --git a/dlls/gdi32/freetype.c b/dlls/gdi32/freetype.c
index f8b4235..5ddfc6a 100644
--- a/dlls/gdi32/freetype.c
+++ b/dlls/gdi32/freetype.c
@@ -5322,14 +5322,13 @@ static HFONT freetype_SelectFont( PHYSDEV dev, HFONT hfont, UINT *aa_flags )
     CHARSETINFO csi;
     FMAT2 dcmat;
     FontSubst *psub = NULL;
-    DC *dc = get_dc_ptr( dev->hdc );
+    DC *dc = get_physdev_dc( dev );
     const SYSTEM_LINKS *font_link;
 
     if (!hfont)  /* notification that the font has been changed by another driver */
     {
         release_font( physdev->font );
         physdev->font = NULL;
-        release_dc_ptr( dc );
         return 0;
     }
 
@@ -5779,7 +5778,6 @@ done:
         physdev->font = ret;
     }
     LeaveCriticalSection( &freetype_cs );
-    release_dc_ptr( dc );
     return ret ? hfont : 0;
 }
 
diff --git a/dlls/gdi32/path.c b/dlls/gdi32/path.c
index 4ae9ba2..51334b2 100644
--- a/dlls/gdi32/path.c
+++ b/dlls/gdi32/path.c
@@ -767,10 +767,9 @@ static BOOL pathdrv_BeginPath( PHYSDEV dev )
  */
 static BOOL pathdrv_AbortPath( PHYSDEV dev )
 {
-    DC *dc = get_dc_ptr( dev->hdc );
+    DC *dc = get_physdev_dc( dev );
 
     path_driver.pDeleteDC( pop_dc_driver( dc, &path_driver ));
-    release_dc_ptr( dc );
     return TRUE;
 }
 
@@ -781,12 +780,11 @@ static BOOL pathdrv_AbortPath( PHYSDEV dev )
 static BOOL pathdrv_EndPath( PHYSDEV dev )
 {
     struct path_physdev *physdev = get_path_physdev( dev );
-    DC *dc = get_dc_ptr( dev->hdc );
+    DC *dc = get_physdev_dc( dev );
 
     dc->path = physdev->path;
     pop_dc_driver( dc, &path_driver );
     HeapFree( GetProcessHeap(), 0, physdev );
-    release_dc_ptr( dc );
     return TRUE;
 }
 
-- 
2.7.4




More information about the wine-patches mailing list