Andrew Eikum : gdiplus: Don' t call PlayEnhMetaFileRecord for records handled by gdiplus.

Alexandre Julliard julliard at winehq.org
Fri Aug 25 12:30:12 CDT 2017


Module: wine
Branch: master
Commit: 7860d11e6cd93d8a1c463be79f783385dcda45eb
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=7860d11e6cd93d8a1c463be79f783385dcda45eb

Author: Andrew Eikum <aeikum at codeweavers.com>
Date:   Fri Aug 25 08:10:38 2017 -0500

gdiplus: Don't call PlayEnhMetaFileRecord for records handled by gdiplus.

Signed-off-by: Andrew Eikum <aeikum at codeweavers.com>
Signed-off-by: Vincent Povirk <vincent at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/gdiplus/metafile.c | 31 ++++++++++++++++---------------
 1 file changed, 16 insertions(+), 15 deletions(-)

diff --git a/dlls/gdiplus/metafile.c b/dlls/gdiplus/metafile.c
index 0bd3033..6260cb3 100644
--- a/dlls/gdiplus/metafile.c
+++ b/dlls/gdiplus/metafile.c
@@ -1423,8 +1423,6 @@ GpStatus WINGDIPAPI GdipPlayMetafileRecord(GDIPCONST GpMetafile *metafile,
         /* regular EMF record */
         if (metafile->playback_dc)
         {
-            ENHMETARECORD *record;
-
             switch (recordType)
             {
             case EMR_SETMAPMODE:
@@ -1469,24 +1467,27 @@ GpStatus WINGDIPAPI GdipPlayMetafileRecord(GDIPCONST GpMetafile *metafile,
                 return Ok;
             }
             default:
-                break;
-            }
+            {
+                ENHMETARECORD *record = heap_alloc_zero(dataSize + 8);
 
-            record = heap_alloc_zero(dataSize + 8);
+                if (record)
+                {
+                    record->iType = recordType;
+                    record->nSize = dataSize + 8;
+                    memcpy(record->dParm, data, dataSize);
 
-            if (record)
-            {
-                record->iType = recordType;
-                record->nSize = dataSize + 8;
-                memcpy(record->dParm, data, dataSize);
+                    if(PlayEnhMetaFileRecord(metafile->playback_dc, metafile->handle_table,
+                            record, metafile->handle_count) == 0)
+                        ERR("PlayEnhMetaFileRecord failed\n");
 
-                PlayEnhMetaFileRecord(metafile->playback_dc, metafile->handle_table,
-                    record, metafile->handle_count);
+                    heap_free(record);
+                }
+                else
+                    return OutOfMemory;
 
-                heap_free(record);
+                break;
+            }
             }
-            else
-                return OutOfMemory;
         }
     }
     else




More information about the wine-cvs mailing list