From 1112c8d9ebc9ed95238e7bd45bd20b5a5e7b2210 Mon Sep 17 00:00:00 2001 From: Vincent Povirk Date: Sat, 19 Jun 2010 16:31:14 -0500 Subject: [PATCH 4/5] gdiplus: Always create path gradient brushes with blend positions. --- dlls/gdiplus/brush.c | 14 ++++++++++---- 1 files changed, 10 insertions(+), 4 deletions(-) diff --git a/dlls/gdiplus/brush.c b/dlls/gdiplus/brush.c index 421d053..b399fce 100644 --- a/dlls/gdiplus/brush.c +++ b/dlls/gdiplus/brush.c @@ -574,12 +574,15 @@ GpStatus WINGDIPAPI GdipCreatePathGradient(GDIPCONST GpPointF* points, if (!*grad) return OutOfMemory; (*grad)->blendfac = GdipAlloc(sizeof(REAL)); - if(!(*grad)->blendfac){ + (*grad)->blendpos = GdipAlloc(sizeof(REAL)); + if(!(*grad)->blendfac || !(*grad)->blendpos){ + GdipFree((*grad)->blendfac); + GdipFree((*grad)->blendpos); GdipFree(*grad); return OutOfMemory; } (*grad)->blendfac[0] = 1.0; - (*grad)->blendpos = NULL; + (*grad)->blendpos[0] = 1.0; (*grad)->blendcount = 1; (*grad)->pathdata.Count = count; @@ -664,12 +667,15 @@ GpStatus WINGDIPAPI GdipCreatePathGradientFromPath(GDIPCONST GpPath* path, if (!*grad) return OutOfMemory; (*grad)->blendfac = GdipAlloc(sizeof(REAL)); - if(!(*grad)->blendfac){ + (*grad)->blendpos = GdipAlloc(sizeof(REAL)); + if(!(*grad)->blendfac || !(*grad)->blendpos){ + GdipFree((*grad)->blendfac); + GdipFree((*grad)->blendpos); GdipFree(*grad); return OutOfMemory; } (*grad)->blendfac[0] = 1.0; - (*grad)->blendpos = NULL; + (*grad)->blendpos[0] = 1.0; (*grad)->blendcount = 1; (*grad)->pathdata.Count = path->pathdata.Count; -- 1.7.0.4