[Gdiplus 1/5] Fix for CloneRegion

Adam Petaccia adam at tpetaccia.com
Sat Aug 16 22:28:04 CDT 2008


---
 dlls/gdiplus/region.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/dlls/gdiplus/region.c b/dlls/gdiplus/region.c
index 11b5aa6..5527834 100644
--- a/dlls/gdiplus/region.c
+++ b/dlls/gdiplus/region.c
@@ -234,6 +234,7 @@ static inline void fuse_region(GpRegion* region, region_element* left,
  */
 GpStatus WINGDIPAPI GdipCloneRegion(GpRegion *region, GpRegion **clone)
 {
+    GpStatus stat;
     region_element *element;
 
     TRACE("%p %p\n", region, clone);
@@ -244,10 +245,12 @@ GpStatus WINGDIPAPI GdipCloneRegion(GpRegion *region, GpRegion **clone)
     *clone = GdipAlloc(sizeof(GpRegion));
     if (!*clone)
         return OutOfMemory;
-    element = &(*clone)->node;
 
+    stat = clone_element(&region->node, &element);
     (*clone)->header = region->header;
-    return clone_element(&region->node, &element);
+    (*clone)->node = *element;
+
+    return stat;
 }
 
 GpStatus WINGDIPAPI GdipCombineRegionPath(GpRegion *region, GpPath *path, CombineMode mode)
-- 
1.5.4.3




More information about the wine-patches mailing list