-- v3: gdiplus: Use CRT allocation functions.
From: Alex Henrie alexhenrie24@gmail.com
--- dlls/gdiplus/brush.c | 162 ++++++++++++++--------------- dlls/gdiplus/customlinecap.c | 38 +++---- dlls/gdiplus/font.c | 40 +++---- dlls/gdiplus/gdiplus.c | 24 ++--- dlls/gdiplus/gdiplus_private.h | 1 - dlls/gdiplus/graphics.c | 184 ++++++++++++++++----------------- dlls/gdiplus/graphicspath.c | 152 +++++++++++++-------------- dlls/gdiplus/image.c | 184 ++++++++++++++++----------------- dlls/gdiplus/imageattributes.c | 18 ++-- dlls/gdiplus/matrix.c | 22 ++-- dlls/gdiplus/metafile.c | 84 +++++++-------- dlls/gdiplus/pathiterator.c | 14 +-- dlls/gdiplus/pen.c | 30 +++--- dlls/gdiplus/region.c | 68 ++++++------ dlls/gdiplus/stringformat.c | 47 ++++----- 15 files changed, 530 insertions(+), 538 deletions(-)
diff --git a/dlls/gdiplus/brush.c b/dlls/gdiplus/brush.c index ed1b559dc9a..8a0676f5b6f 100644 --- a/dlls/gdiplus/brush.c +++ b/dlls/gdiplus/brush.c @@ -48,7 +48,7 @@ GpStatus WINGDIPAPI GdipCloneBrush(GpBrush *brush, GpBrush **clone) switch(brush->bt){ case BrushTypeSolidColor: { - *clone = heap_alloc_zero(sizeof(GpSolidFill)); + *clone = malloc(sizeof(GpSolidFill)); if (!*clone) return OutOfMemory; memcpy(*clone, brush, sizeof(GpSolidFill)); break; @@ -64,7 +64,7 @@ GpStatus WINGDIPAPI GdipCloneBrush(GpBrush *brush, GpBrush **clone) INT count, pcount; GpStatus stat;
- *clone = heap_alloc_zero(sizeof(GpPathGradient)); + *clone = malloc(sizeof(GpPathGradient)); if (!*clone) return OutOfMemory;
src = (GpPathGradient*) brush; @@ -75,7 +75,7 @@ GpStatus WINGDIPAPI GdipCloneBrush(GpBrush *brush, GpBrush **clone) stat = GdipClonePath(src->path, &dest->path);
if(stat != Ok){ - heap_free(dest); + free(dest); return stat; }
@@ -84,25 +84,25 @@ GpStatus WINGDIPAPI GdipCloneBrush(GpBrush *brush, GpBrush **clone) /* blending */ count = src->blendcount; dest->blendcount = count; - dest->blendfac = heap_alloc_zero(count * sizeof(REAL)); - dest->blendpos = heap_alloc_zero(count * sizeof(REAL)); - dest->surroundcolors = heap_alloc_zero(dest->surroundcolorcount * sizeof(ARGB)); + dest->blendfac = malloc(count * sizeof(REAL)); + dest->blendpos = malloc(count * sizeof(REAL)); + dest->surroundcolors = malloc(dest->surroundcolorcount * sizeof(ARGB)); pcount = dest->pblendcount; if (pcount) { - dest->pblendcolor = heap_alloc_zero(pcount * sizeof(ARGB)); - dest->pblendpos = heap_alloc_zero(pcount * sizeof(REAL)); + dest->pblendcolor = malloc(pcount * sizeof(ARGB)); + dest->pblendpos = malloc(pcount * sizeof(REAL)); }
if(!dest->blendfac || !dest->blendpos || !dest->surroundcolors || (pcount && (!dest->pblendcolor || !dest->pblendpos))){ GdipDeletePath(dest->path); - heap_free(dest->blendfac); - heap_free(dest->blendpos); - heap_free(dest->surroundcolors); - heap_free(dest->pblendcolor); - heap_free(dest->pblendpos); - heap_free(dest); + free(dest->blendfac); + free(dest->blendpos); + free(dest->surroundcolors); + free(dest->pblendcolor); + free(dest->pblendpos); + free(dest); return OutOfMemory; }
@@ -122,31 +122,31 @@ GpStatus WINGDIPAPI GdipCloneBrush(GpBrush *brush, GpBrush **clone) GpLineGradient *dest, *src; INT count, pcount;
- dest = heap_alloc_zero(sizeof(GpLineGradient)); - if(!dest) return OutOfMemory; + dest = malloc(sizeof(GpLineGradient)); + if(!dest) return OutOfMemory;
src = (GpLineGradient*)brush;
memcpy(dest, src, sizeof(GpLineGradient));
count = dest->blendcount; - dest->blendfac = heap_alloc_zero(count * sizeof(REAL)); - dest->blendpos = heap_alloc_zero(count * sizeof(REAL)); + dest->blendfac = malloc(count * sizeof(REAL)); + dest->blendpos = malloc(count * sizeof(REAL)); pcount = dest->pblendcount; if (pcount) { - dest->pblendcolor = heap_alloc_zero(pcount * sizeof(ARGB)); - dest->pblendpos = heap_alloc_zero(pcount * sizeof(REAL)); + dest->pblendcolor = malloc(pcount * sizeof(ARGB)); + dest->pblendpos = malloc(pcount * sizeof(REAL)); }
if (!dest->blendfac || !dest->blendpos || (pcount && (!dest->pblendcolor || !dest->pblendpos))) { - heap_free(dest->blendfac); - heap_free(dest->blendpos); - heap_free(dest->pblendcolor); - heap_free(dest->pblendpos); - heap_free(dest); + free(dest->blendfac); + free(dest->blendpos); + free(dest->pblendcolor); + free(dest->pblendpos); + free(dest); return OutOfMemory; }
@@ -278,7 +278,7 @@ GpStatus WINGDIPAPI GdipCreateHatchBrush(GpHatchStyle hatchstyle, ARGB forecol, if(hatchstyle < HatchStyleMin || hatchstyle > HatchStyleMax) return InvalidParameter;
- *brush = heap_alloc_zero(sizeof(GpHatch)); + *brush = calloc(1, sizeof(GpHatch)); if (!*brush) return OutOfMemory;
(*brush)->brush.bt = BrushTypeHatchFill; @@ -293,7 +293,7 @@ GpStatus WINGDIPAPI GdipCreateHatchBrush(GpHatchStyle hatchstyle, ARGB forecol, static GpStatus create_line_brush(const GpRectF *rect, ARGB startcolor, ARGB endcolor, GpWrapMode wrap, GpLineGradient **line) { - *line = heap_alloc_zero(sizeof(GpLineGradient)); + *line = calloc(1, sizeof(GpLineGradient)); if(!*line) return OutOfMemory;
(*line)->brush.bt = BrushTypeLinearGradient; @@ -303,14 +303,14 @@ static GpStatus create_line_brush(const GpRectF *rect, ARGB startcolor, ARGB end (*line)->gamma = FALSE; (*line)->rect = *rect; (*line)->blendcount = 1; - (*line)->blendfac = heap_alloc_zero(sizeof(REAL)); - (*line)->blendpos = heap_alloc_zero(sizeof(REAL)); + (*line)->blendfac = malloc(sizeof(REAL)); + (*line)->blendpos = malloc(sizeof(REAL));
if (!(*line)->blendfac || !(*line)->blendpos) { - heap_free((*line)->blendfac); - heap_free((*line)->blendpos); - heap_free(*line); + free((*line)->blendfac); + free((*line)->blendpos); + free(*line); *line = NULL; return OutOfMemory; } @@ -604,7 +604,7 @@ static GpStatus create_path_gradient(GpPath *path, ARGB centercolor, GpPathGradi if (path->pathdata.Count < 2) return OutOfMemory;
- *grad = heap_alloc_zero(sizeof(GpPathGradient)); + *grad = calloc(1, sizeof(GpPathGradient)); if (!*grad) { return OutOfMemory; @@ -612,14 +612,14 @@ static GpStatus create_path_gradient(GpPath *path, ARGB centercolor, GpPathGradi
GdipSetMatrixElements(&(*grad)->transform, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0);
- (*grad)->blendfac = heap_alloc_zero(sizeof(REAL)); - (*grad)->blendpos = heap_alloc_zero(sizeof(REAL)); - (*grad)->surroundcolors = heap_alloc_zero(sizeof(ARGB)); + (*grad)->blendfac = malloc(sizeof(REAL)); + (*grad)->blendpos = malloc(sizeof(REAL)); + (*grad)->surroundcolors = malloc(sizeof(ARGB)); if(!(*grad)->blendfac || !(*grad)->blendpos || !(*grad)->surroundcolors){ - heap_free((*grad)->blendfac); - heap_free((*grad)->blendpos); - heap_free((*grad)->surroundcolors); - heap_free(*grad); + free((*grad)->blendfac); + free((*grad)->blendpos); + free((*grad)->surroundcolors); + free(*grad); *grad = NULL; return OutOfMemory; } @@ -756,7 +756,7 @@ GpStatus WINGDIPAPI GdipCreateSolidFill(ARGB color, GpSolidFill **sf)
if(!sf) return InvalidParameter;
- *sf = heap_alloc_zero(sizeof(GpSolidFill)); + *sf = calloc(1, sizeof(GpSolidFill)); if (!*sf) return OutOfMemory;
(*sf)->brush.bt = BrushTypeSolidColor; @@ -865,7 +865,7 @@ GpStatus WINGDIPAPI GdipCreateTextureIA(GpImage *image, if (status != Ok) return status;
- *texture = heap_alloc_zero(sizeof(GpTexture)); + *texture = calloc(1, sizeof(GpTexture)); if (!*texture){ status = OutOfMemory; goto exit; @@ -899,7 +899,7 @@ exit: if (*texture) { GdipDisposeImageAttributes((*texture)->imageattributes); - heap_free(*texture); + free(*texture); *texture = NULL; } GdipDisposeImage(new_image); @@ -996,29 +996,29 @@ GpStatus WINGDIPAPI GdipDeleteBrush(GpBrush *brush) switch(brush->bt) { case BrushTypePathGradient: - GdipDeletePath(((GpPathGradient*) brush)->path); - heap_free(((GpPathGradient*) brush)->blendfac); - heap_free(((GpPathGradient*) brush)->blendpos); - heap_free(((GpPathGradient*) brush)->surroundcolors); - heap_free(((GpPathGradient*) brush)->pblendcolor); - heap_free(((GpPathGradient*) brush)->pblendpos); + GdipDeletePath(((GpPathGradient*)brush)->path); + free(((GpPathGradient*)brush)->blendfac); + free(((GpPathGradient*)brush)->blendpos); + free(((GpPathGradient*)brush)->surroundcolors); + free(((GpPathGradient*)brush)->pblendcolor); + free(((GpPathGradient*)brush)->pblendpos); break; case BrushTypeLinearGradient: - heap_free(((GpLineGradient*)brush)->blendfac); - heap_free(((GpLineGradient*)brush)->blendpos); - heap_free(((GpLineGradient*)brush)->pblendcolor); - heap_free(((GpLineGradient*)brush)->pblendpos); + free(((GpLineGradient*)brush)->blendfac); + free(((GpLineGradient*)brush)->blendpos); + free(((GpLineGradient*)brush)->pblendcolor); + free(((GpLineGradient*)brush)->pblendpos); break; case BrushTypeTextureFill: GdipDisposeImage(((GpTexture*)brush)->image); GdipDisposeImageAttributes(((GpTexture*)brush)->imageattributes); - heap_free(((GpTexture*)brush)->bitmap_bits); + free(((GpTexture*)brush)->bitmap_bits); break; default: break; }
- heap_free(brush); + free(brush);
return Ok; } @@ -1373,21 +1373,21 @@ GpStatus WINGDIPAPI GdipSetLineBlend(GpLineGradient *brush, (count >= 2 && (positions[0] != 0.0f || positions[count-1] != 1.0f))) return InvalidParameter;
- new_blendfac = heap_alloc_zero(count * sizeof(REAL)); - new_blendpos = heap_alloc_zero(count * sizeof(REAL)); + new_blendfac = malloc(count * sizeof(REAL)); + new_blendpos = malloc(count * sizeof(REAL));
if (!new_blendfac || !new_blendpos) { - heap_free(new_blendfac); - heap_free(new_blendpos); + free(new_blendfac); + free(new_blendpos); return OutOfMemory; }
memcpy(new_blendfac, factors, count * sizeof(REAL)); memcpy(new_blendpos, positions, count * sizeof(REAL));
- heap_free(brush->blendfac); - heap_free(brush->blendpos); + free(brush->blendfac); + free(brush->blendpos);
brush->blendcount = count; brush->blendfac = new_blendfac; @@ -1518,21 +1518,21 @@ GpStatus WINGDIPAPI GdipSetPathGradientBlend(GpPathGradient *brush, GDIPCONST RE (count >= 2 && (pos[0] != 0.0f || pos[count-1] != 1.0f))) return InvalidParameter;
- new_blendfac = heap_alloc_zero(count * sizeof(REAL)); - new_blendpos = heap_alloc_zero(count * sizeof(REAL)); + new_blendfac = malloc(count * sizeof(REAL)); + new_blendpos = malloc(count * sizeof(REAL));
if (!new_blendfac || !new_blendpos) { - heap_free(new_blendfac); - heap_free(new_blendpos); + free(new_blendfac); + free(new_blendpos); return OutOfMemory; }
memcpy(new_blendfac, blend, count * sizeof(REAL)); memcpy(new_blendpos, pos, count * sizeof(REAL));
- heap_free(brush->blendfac); - heap_free(brush->blendpos); + free(brush->blendfac); + free(brush->blendpos);
brush->blendcount = count; brush->blendfac = new_blendfac; @@ -1587,20 +1587,20 @@ GpStatus WINGDIPAPI GdipSetPathGradientPresetBlend(GpPathGradient *brush, return InvalidParameter; }
- new_color = heap_alloc_zero(count * sizeof(ARGB)); - new_pos = heap_alloc_zero(count * sizeof(REAL)); + new_color = malloc(count * sizeof(ARGB)); + new_pos = malloc(count * sizeof(REAL)); if (!new_color || !new_pos) { - heap_free(new_color); - heap_free(new_pos); + free(new_color); + free(new_pos); return OutOfMemory; }
memcpy(new_color, blend, sizeof(ARGB) * count); memcpy(new_pos, pos, sizeof(REAL) * count);
- heap_free(brush->pblendcolor); - heap_free(brush->pblendpos); + free(brush->pblendcolor); + free(brush->pblendpos);
brush->pblendcolor = new_color; brush->pblendpos = new_pos; @@ -1811,13 +1811,13 @@ GpStatus WINGDIPAPI GdipSetPathGradientSurroundColorsWithCount(GpPathGradient num_colors = 1; }
- new_surroundcolors = heap_alloc_zero(num_colors * sizeof(ARGB)); + new_surroundcolors = malloc(num_colors * sizeof(ARGB)); if (!new_surroundcolors) return OutOfMemory;
memcpy(new_surroundcolors, argb, num_colors * sizeof(ARGB));
- heap_free(grad->surroundcolors); + free(grad->surroundcolors);
grad->surroundcolors = new_surroundcolors; grad->surroundcolorcount = num_colors; @@ -2048,20 +2048,20 @@ GpStatus WINGDIPAPI GdipSetLinePresetBlend(GpLineGradient *brush, return InvalidParameter; }
- new_color = heap_alloc_zero(count * sizeof(ARGB)); - new_pos = heap_alloc_zero(count * sizeof(REAL)); + new_color = malloc(count * sizeof(ARGB)); + new_pos = malloc(count * sizeof(REAL)); if (!new_color || !new_pos) { - heap_free(new_color); - heap_free(new_pos); + free(new_color); + free(new_pos); return OutOfMemory; }
memcpy(new_color, blend, sizeof(ARGB) * count); memcpy(new_pos, positions, sizeof(REAL) * count);
- heap_free(brush->pblendcolor); - heap_free(brush->pblendpos); + free(brush->pblendcolor); + free(brush->pblendpos);
brush->pblendcolor = new_color; brush->pblendpos = new_pos; diff --git a/dlls/gdiplus/customlinecap.c b/dlls/gdiplus/customlinecap.c index e767f20e4b3..b6dcf26fdd1 100644 --- a/dlls/gdiplus/customlinecap.c +++ b/dlls/gdiplus/customlinecap.c @@ -40,9 +40,9 @@ GpStatus WINGDIPAPI GdipCloneCustomLineCap(GpCustomLineCap* from, return InvalidParameter;
if (from->type == CustomLineCapTypeDefault) - *to = heap_alloc_zero(sizeof(GpCustomLineCap)); + *to = malloc(sizeof(GpCustomLineCap)); else - *to = heap_alloc_zero(sizeof(GpAdjustableArrowCap)); + *to = malloc(sizeof(GpAdjustableArrowCap));
if (!*to) return OutOfMemory; @@ -53,13 +53,13 @@ GpStatus WINGDIPAPI GdipCloneCustomLineCap(GpCustomLineCap* from, *(GpAdjustableArrowCap *)*to = *(GpAdjustableArrowCap *)from;
/* Duplicate path data */ - (*to)->pathdata.Points = heap_alloc_zero(from->pathdata.Count * sizeof(PointF)); - (*to)->pathdata.Types = heap_alloc_zero(from->pathdata.Count); + (*to)->pathdata.Points = malloc(from->pathdata.Count * sizeof(PointF)); + (*to)->pathdata.Types = malloc(from->pathdata.Count);
if((!(*to)->pathdata.Types || !(*to)->pathdata.Points) && (*to)->pathdata.Count){ - heap_free((*to)->pathdata.Points); - heap_free((*to)->pathdata.Types); - heap_free(*to); + free((*to)->pathdata.Points); + free((*to)->pathdata.Types); + free(*to); return OutOfMemory; }
@@ -77,13 +77,13 @@ static GpStatus init_custom_linecap(GpCustomLineCap *cap, GpPathData *pathdata, { cap->fill = fill;
- cap->pathdata.Points = heap_alloc_zero(pathdata->Count * sizeof(PointF)); - cap->pathdata.Types = heap_alloc_zero(pathdata->Count); + cap->pathdata.Points = malloc(pathdata->Count * sizeof(PointF)); + cap->pathdata.Types = malloc(pathdata->Count);
if ((!cap->pathdata.Types || !cap->pathdata.Points) && pathdata->Count) { - heap_free(cap->pathdata.Points); - heap_free(cap->pathdata.Types); + free(cap->pathdata.Points); + free(cap->pathdata.Types); cap->pathdata.Points = NULL; cap->pathdata.Types = NULL; return OutOfMemory; @@ -119,8 +119,8 @@ GpStatus WINGDIPAPI GdipCreateCustomLineCap(GpPath* fillPath, GpPath* strokePath if(!customCap || !(fillPath || strokePath)) return InvalidParameter;
- *customCap = heap_alloc_zero(sizeof(GpCustomLineCap)); - if(!*customCap) return OutOfMemory; + *customCap = calloc(1, sizeof(GpCustomLineCap)); + if(!*customCap) return OutOfMemory;
if (strokePath) pathdata = &strokePath->pathdata; @@ -130,7 +130,7 @@ GpStatus WINGDIPAPI GdipCreateCustomLineCap(GpPath* fillPath, GpPath* strokePath stat = init_custom_linecap(*customCap, pathdata, fillPath != NULL, baseCap, baseInset); if (stat != Ok) { - heap_free(*customCap); + free(*customCap); return stat; }
@@ -146,9 +146,9 @@ GpStatus WINGDIPAPI GdipDeleteCustomLineCap(GpCustomLineCap *customCap) if(!customCap) return InvalidParameter;
- heap_free(customCap->pathdata.Points); - heap_free(customCap->pathdata.Types); - heap_free(customCap); + free(customCap->pathdata.Points); + free(customCap->pathdata.Types); + free(customCap);
return Ok; } @@ -337,7 +337,7 @@ GpStatus WINGDIPAPI GdipCreateAdjustableArrowCap(REAL height, REAL width, BOOL f if (!cap) return InvalidParameter;
- *cap = heap_alloc_zero(sizeof(**cap)); + *cap = calloc(1, sizeof(**cap)); if (!*cap) return OutOfMemory;
@@ -348,7 +348,7 @@ GpStatus WINGDIPAPI GdipCreateAdjustableArrowCap(REAL height, REAL width, BOOL f stat = init_custom_linecap(&(*cap)->cap, &pathdata, fill, LineCapTriangle, width != 0.0 ? height / width : 0.0); if (stat != Ok) { - heap_free(*cap); + free(*cap); return stat; }
diff --git a/dlls/gdiplus/font.c b/dlls/gdiplus/font.c index 081fddf7c5d..4970043eb15 100644 --- a/dlls/gdiplus/font.c +++ b/dlls/gdiplus/font.c @@ -185,7 +185,7 @@ GpStatus WINGDIPAPI GdipCreateFont(GDIPCONST GpFontFamily *fontFamily,
if (!ret) return NotTrueTypeFont;
- *font = heap_alloc_zero(sizeof(GpFont)); + *font = calloc(1, sizeof(GpFont)); if (!*font) return OutOfMemory;
(*font)->unit = unit; @@ -225,7 +225,7 @@ GpStatus WINGDIPAPI GdipCreateFontFromLogfontW(HDC hdc,
if (!ret) return NotTrueTypeFont;
- *font = heap_alloc_zero(sizeof(GpFont)); + *font = calloc(1, sizeof(GpFont)); if (!*font) return OutOfMemory;
(*font)->unit = UnitWorld; @@ -235,7 +235,7 @@ GpStatus WINGDIPAPI GdipCreateFontFromLogfontW(HDC hdc, stat = GdipCreateFontFamilyFromName(facename, NULL, &(*font)->family); if (stat != Ok) { - heap_free(*font); + free(*font); return NotTrueTypeFont; }
@@ -276,7 +276,7 @@ GpStatus WINGDIPAPI GdipDeleteFont(GpFont* font) return InvalidParameter;
GdipDeleteFontFamily(font->family); - heap_free(font); + free(font);
return Ok; } @@ -506,8 +506,8 @@ GpStatus WINGDIPAPI GdipCloneFont(GpFont *font, GpFont **cloneFont) if(!font || !cloneFont) return InvalidParameter;
- *cloneFont = heap_alloc_zero(sizeof(GpFont)); - if(!*cloneFont) return OutOfMemory; + *cloneFont = calloc(1, sizeof(GpFont)); + if(!*cloneFont) return OutOfMemory;
**cloneFont = *font; return Ok; @@ -824,7 +824,7 @@ GpStatus WINGDIPAPI GdipDeleteFontFamily(GpFontFamily *FontFamily)
if (!FontFamily->installed && !InterlockedDecrement(&FontFamily->ref)) { - heap_free(FontFamily); + free(FontFamily); }
return Ok; @@ -1057,7 +1057,7 @@ GpStatus WINGDIPAPI GdipNewPrivateFontCollection(GpFontCollection** fontCollecti if (!fontCollection) return InvalidParameter;
- *fontCollection = heap_alloc_zero(sizeof(GpFontCollection)); + *fontCollection = calloc(1, sizeof(GpFontCollection)); if (!*fontCollection) return OutOfMemory;
(*fontCollection)->FontFamilies = NULL; @@ -1082,8 +1082,8 @@ GpStatus WINGDIPAPI GdipDeletePrivateFontCollection(GpFontCollection **fontColle return InvalidParameter;
for (i = 0; i < (*fontCollection)->count; i++) GdipDeleteFontFamily((*fontCollection)->FontFamilies[i]); - heap_free((*fontCollection)->FontFamilies); - heap_free(*fontCollection); + free((*fontCollection)->FontFamilies); + free(*fontCollection);
return Ok; } @@ -1364,7 +1364,7 @@ static WCHAR *copy_name_table_string( const tt_name_record *name, const BYTE *da { case TT_PLATFORM_APPLE_UNICODE: case TT_PLATFORM_MICROSOFT: - ret = heap_alloc((name_len / 2 + 1) * sizeof(WCHAR)); + ret = malloc((name_len / 2 + 1) * sizeof(WCHAR)); for (len = 0; len < name_len / 2; len++) ret[len] = (data[len * 2] << 8) | data[len * 2 + 1]; ret[len] = 0; @@ -1374,7 +1374,7 @@ static WCHAR *copy_name_table_string( const tt_name_record *name, const BYTE *da len = MultiByteToWideChar( codepage, 0, (char *)data, name_len, NULL, 0 ) + 1; if (!len) return NULL; - ret = heap_alloc(len * sizeof(WCHAR)); + ret = malloc(len * sizeof(WCHAR)); len = MultiByteToWideChar( codepage, 0, (char *)data, name_len, ret, len - 1 ); ret[len] = 0; return ret; @@ -1509,7 +1509,7 @@ GpStatus WINGDIPAPI GdipPrivateAddMemoryFont(GpFontCollection* fontCollection,
DeleteDC(param.hdc); } - heap_free(name); + free(name); return ret; }
@@ -1560,8 +1560,8 @@ void free_installed_fonts(void) INT i;
for (i = 0; i < installedFontCollection.count; i++) - heap_free(installedFontCollection.FontFamilies[i]); - heap_free(installedFontCollection.FontFamilies); + free(installedFontCollection.FontFamilies[i]); + free(installedFontCollection.FontFamilies);
installedFontCollection.FontFamilies = NULL; installedFontCollection.allocated = 0; @@ -1592,7 +1592,7 @@ static INT CALLBACK add_font_proc(const LOGFONTW *lfw, const TEXTMETRICW *ntm, if (fonts->allocated == fonts->count) { INT new_alloc_count = fonts->allocated+50; - GpFontFamily** new_family_list = heap_alloc(new_alloc_count*sizeof(void*)); + GpFontFamily** new_family_list = malloc(new_alloc_count * sizeof(void*));
if (!new_family_list) { @@ -1601,12 +1601,12 @@ static INT CALLBACK add_font_proc(const LOGFONTW *lfw, const TEXTMETRICW *ntm, }
memcpy(new_family_list, fonts->FontFamilies, fonts->count*sizeof(void*)); - heap_free(fonts->FontFamilies); + free(fonts->FontFamilies); fonts->FontFamilies = new_family_list; fonts->allocated = new_alloc_count; }
- family = heap_alloc(sizeof(*family)); + family = malloc(sizeof(*family)); if (!family) { if (param->is_system) @@ -1621,7 +1621,7 @@ static INT CALLBACK add_font_proc(const LOGFONTW *lfw, const TEXTMETRICW *ntm, { if (wcsicmp(lfw->lfFaceName, fonts->FontFamilies[i]->FamilyName) == 0) { - heap_free(family); + free(family); return 1; } } @@ -1634,7 +1634,7 @@ static INT CALLBACK add_font_proc(const LOGFONTW *lfw, const TEXTMETRICW *ntm, SelectObject(param->hdc, old_hfont); DeleteObject(hfont);
- heap_free(family); + free(family); param->stat = OutOfMemory; return 0; } diff --git a/dlls/gdiplus/gdiplus.c b/dlls/gdiplus/gdiplus.c index 3c4ecdeab5f..32e287b0409 100644 --- a/dlls/gdiplus/gdiplus.c +++ b/dlls/gdiplus/gdiplus.c @@ -143,7 +143,7 @@ ULONG WINAPI GdiplusShutdown_wrapper(ULONG_PTR token) */ void* WINGDIPAPI GdipAlloc(SIZE_T size) { - return HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, size); + return calloc(1, size); }
/***************************************************** @@ -151,7 +151,7 @@ void* WINGDIPAPI GdipAlloc(SIZE_T size) */ void WINGDIPAPI GdipFree(void* ptr) { - HeapFree(GetProcessHeap(), 0, ptr); + free(ptr); }
/* Calculates the bezier points needed to fill in the arc portion starting at @@ -418,12 +418,12 @@ BOOL lengthen_path(GpPath *path, INT len) if(path->datalen == 0){ path->datalen = len * 2;
- path->pathdata.Points = heap_alloc_zero(path->datalen * sizeof(PointF)); - if(!path->pathdata.Points) return FALSE; + path->pathdata.Points = calloc(path->datalen, sizeof(PointF)); + if(!path->pathdata.Points) return FALSE;
- path->pathdata.Types = heap_alloc_zero(path->datalen); + path->pathdata.Types = calloc(1, path->datalen); if(!path->pathdata.Types){ - heap_free(path->pathdata.Points); + free(path->pathdata.Points); return FALSE; } } @@ -432,11 +432,11 @@ BOOL lengthen_path(GpPath *path, INT len) while(path->datalen - path->pathdata.Count < len) path->datalen *= 2;
- path->pathdata.Points = heap_realloc(path->pathdata.Points, path->datalen * sizeof(PointF)); - if(!path->pathdata.Points) return FALSE; + path->pathdata.Points = realloc(path->pathdata.Points, path->datalen * sizeof(PointF)); + if(!path->pathdata.Points) return FALSE;
- path->pathdata.Types = heap_realloc(path->pathdata.Types, path->datalen); - if(!path->pathdata.Types) return FALSE; + path->pathdata.Types = realloc(path->pathdata.Types, path->datalen); + if(!path->pathdata.Types) return FALSE; }
return TRUE; @@ -477,8 +477,8 @@ void delete_element(region_element* element) default: delete_element(element->elementdata.combine.left); delete_element(element->elementdata.combine.right); - heap_free(element->elementdata.combine.left); - heap_free(element->elementdata.combine.right); + free(element->elementdata.combine.left); + free(element->elementdata.combine.right); break; } } diff --git a/dlls/gdiplus/gdiplus_private.h b/dlls/gdiplus/gdiplus_private.h index 1bc058b3413..6f7e72124c2 100644 --- a/dlls/gdiplus/gdiplus_private.h +++ b/dlls/gdiplus/gdiplus_private.h @@ -30,7 +30,6 @@ #include "objbase.h" #include "ocidl.h" #include "wincodecsdk.h" -#include "wine/heap.h" #include "wine/list.h"
#include "gdiplus.h" diff --git a/dlls/gdiplus/graphics.c b/dlls/gdiplus/graphics.c index 371629a5bef..81576567392 100644 --- a/dlls/gdiplus/graphics.c +++ b/dlls/gdiplus/graphics.c @@ -532,7 +532,7 @@ static GpStatus alpha_blend_pixels_hrgn(GpGraphics *graphics, INT dst_x, INT dst
size = GetRegionData(hrgn, 0, NULL);
- rgndata = heap_alloc_zero(size); + rgndata = malloc(size); if (!rgndata) { DeleteObject(hrgn); @@ -551,7 +551,7 @@ static GpStatus alpha_blend_pixels_hrgn(GpGraphics *graphics, INT dst_x, INT dst src_stride, fmt); }
- heap_free(rgndata); + free(rgndata);
DeleteObject(hrgn);
@@ -1332,7 +1332,7 @@ static GpStatus brush_fill_pixels(GpGraphics *graphics, GpBrush *brush, { BitmapData lockeddata;
- fill->bitmap_bits = heap_alloc_zero(sizeof(ARGB) * bitmap->width * bitmap->height); + fill->bitmap_bits = calloc(bitmap->width * bitmap->height, sizeof(ARGB)); if (!fill->bitmap_bits) stat = OutOfMemory;
@@ -1358,7 +1358,7 @@ static GpStatus brush_fill_pixels(GpGraphics *graphics, GpBrush *brush,
if (stat != Ok) { - heap_free(fill->bitmap_bits); + free(fill->bitmap_bits); fill->bitmap_bits = NULL; } } @@ -1785,9 +1785,9 @@ static void draw_cap(GpGraphics *graphics, COLORREF color, GpLineCap cap, REAL s }
count = custom->pathdata.Count; - custptf = heap_alloc_zero(count * sizeof(PointF)); - custpt = heap_alloc_zero(count * sizeof(POINT)); - tp = heap_alloc_zero(count); + custptf = malloc(count * sizeof(PointF)); + custpt = malloc(count * sizeof(POINT)); + tp = malloc(count);
if(!custptf || !custpt || !tp) goto custend; @@ -1818,9 +1818,9 @@ static void draw_cap(GpGraphics *graphics, COLORREF color, GpLineCap cap, REAL s PolyDraw(graphics->hdc, custpt, tp, count);
custend: - heap_free(custptf); - heap_free(custpt); - heap_free(tp); + free(custptf); + free(custpt); + free(tp); break; default: break; @@ -1922,9 +1922,9 @@ static void shorten_bezier_amt(GpPointF * pt, REAL amt, BOOL rev) static GpStatus draw_poly(GpGraphics *graphics, GpPen *pen, GDIPCONST GpPointF * pt, GDIPCONST BYTE * types, INT count, BOOL caps) { - POINT *pti = heap_alloc_zero(count * sizeof(POINT)); - BYTE *tp = heap_alloc_zero(count); - GpPointF *ptcopy = heap_alloc_zero(count * sizeof(GpPointF)); + POINT *pti = malloc(count * sizeof(POINT)); + BYTE *tp = malloc(count); + GpPointF *ptcopy = malloc(count * sizeof(GpPointF)); INT i, j; GpStatus status = GenericError;
@@ -2039,9 +2039,9 @@ static GpStatus draw_poly(GpGraphics *graphics, GpPen *pen, GDIPCONST GpPointF * status = Ok;
end: - heap_free(pti); - heap_free(ptcopy); - heap_free(tp); + free(pti); + free(ptcopy); + free(tp);
return status; } @@ -2085,7 +2085,7 @@ static GpStatus init_container(GraphicsContainerItem** container, GDIPCONST GpGraphics* graphics, GraphicsContainerType type){ GpStatus sts;
- *container = heap_alloc_zero(sizeof(GraphicsContainerItem)); + *container = calloc(1, sizeof(GraphicsContainerItem)); if(!(*container)) return OutOfMemory;
@@ -2107,7 +2107,7 @@ static GpStatus init_container(GraphicsContainerItem** container,
sts = GdipCloneRegion(graphics->clip, &(*container)->clip); if(sts != Ok){ - heap_free(*container); + free(*container); *container = NULL; return sts; } @@ -2118,7 +2118,7 @@ static GpStatus init_container(GraphicsContainerItem** container, static void delete_container(GraphicsContainerItem* container) { GdipDeleteRegion(container->clip); - heap_free(container); + free(container); }
static GpStatus restore_container(GpGraphics* graphics, @@ -2383,13 +2383,13 @@ GpStatus WINGDIPAPI GdipCreateFromHDC2(HDC hdc, HANDLE hDevice, GpGraphics **gra if(graphics == NULL) return InvalidParameter;
- *graphics = heap_alloc_zero(sizeof(GpGraphics)); + *graphics = calloc(1, sizeof(GpGraphics)); if(!*graphics) return OutOfMemory;
GdipSetMatrixElements(&(*graphics)->worldtrans, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0);
if((retval = GdipCreateRegion(&(*graphics)->clip)) != Ok){ - heap_free(*graphics); + free(*graphics); return retval; }
@@ -2435,14 +2435,14 @@ GpStatus graphics_from_image(GpImage *image, GpGraphics **graphics) { GpStatus retval;
- *graphics = heap_alloc_zero(sizeof(GpGraphics)); + *graphics = calloc(1, sizeof(GpGraphics)); if(!*graphics) return OutOfMemory;
GdipSetMatrixElements(&(*graphics)->worldtrans, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0); GdipSetMatrixElements(&(*graphics)->gdi_transform, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0);
if((retval = GdipCreateRegion(&(*graphics)->clip)) != Ok){ - heap_free(*graphics); + free(*graphics); return retval; }
@@ -2563,7 +2563,7 @@ GpStatus WINGDIPAPI GdipDeleteGraphics(GpGraphics *graphics) * accessing freed memory. */ graphics->busy = TRUE;
- heap_free(graphics); + free(graphics);
return Ok; } @@ -2684,7 +2684,7 @@ GpStatus WINGDIPAPI GdipDrawBeziersI(GpGraphics *graphics, GpPen *pen, if(graphics->busy) return ObjectBusy;
- pts = heap_alloc_zero(sizeof(GpPointF) * count); + pts = malloc(sizeof(GpPointF) * count); if(!pts) return OutOfMemory;
@@ -2695,7 +2695,7 @@ GpStatus WINGDIPAPI GdipDrawBeziersI(GpGraphics *graphics, GpPen *pen,
ret = GdipDrawBeziers(graphics,pen,pts,count);
- heap_free(pts); + free(pts);
return ret; } @@ -2754,7 +2754,7 @@ GpStatus WINGDIPAPI GdipDrawClosedCurve2I(GpGraphics *graphics, GpPen *pen, if(!points || count <= 0) return InvalidParameter;
- ptf = heap_alloc_zero(sizeof(GpPointF)*count); + ptf = malloc(sizeof(GpPointF) * count); if(!ptf) return OutOfMemory;
@@ -2765,7 +2765,7 @@ GpStatus WINGDIPAPI GdipDrawClosedCurve2I(GpGraphics *graphics, GpPen *pen,
stat = GdipDrawClosedCurve2(graphics, pen, ptf, count, tension);
- heap_free(ptf); + free(ptf);
return stat; } @@ -2790,7 +2790,7 @@ GpStatus WINGDIPAPI GdipDrawCurveI(GpGraphics *graphics, GpPen *pen, if(!points) return InvalidParameter;
- pointsF = heap_alloc_zero(sizeof(GpPointF)*count); + pointsF = malloc(sizeof(GpPointF) * count); if(!pointsF) return OutOfMemory;
@@ -2800,7 +2800,7 @@ GpStatus WINGDIPAPI GdipDrawCurveI(GpGraphics *graphics, GpPen *pen, }
ret = GdipDrawCurve(graphics,pen,pointsF,count); - heap_free(pointsF); + free(pointsF);
return ret; } @@ -2846,7 +2846,7 @@ GpStatus WINGDIPAPI GdipDrawCurve2I(GpGraphics *graphics, GpPen *pen, if(!points) return InvalidParameter;
- pointsF = heap_alloc_zero(sizeof(GpPointF)*count); + pointsF = malloc(sizeof(GpPointF) * count); if(!pointsF) return OutOfMemory;
@@ -2856,7 +2856,7 @@ GpStatus WINGDIPAPI GdipDrawCurve2I(GpGraphics *graphics, GpPen *pen, }
ret = GdipDrawCurve2(graphics,pen,pointsF,count,tension); - heap_free(pointsF); + free(pointsF);
return ret; } @@ -3179,7 +3179,7 @@ GpStatus WINGDIPAPI GdipDrawImagePointsRect(GpGraphics *graphics, GpImage *image
TRACE("src_area: %d x %d\n", src_area.Width, src_area.Height);
- src_data = heap_alloc_zero(sizeof(ARGB) * src_area.Width * src_area.Height); + src_data = calloc(src_area.Width * src_area.Height, sizeof(ARGB)); if (!src_data) return OutOfMemory; src_stride = sizeof(ARGB) * src_area.Width; @@ -3202,7 +3202,7 @@ GpStatus WINGDIPAPI GdipDrawImagePointsRect(GpGraphics *graphics, GpImage *image
if (stat != Ok) { - heap_free(src_data); + free(src_data); return stat; }
@@ -3237,10 +3237,10 @@ GpStatus WINGDIPAPI GdipDrawImagePointsRect(GpGraphics *graphics, GpImage *image y_dy = dst_to_src.matrix[3];
/* Transform the bits as needed to the destination. */ - dst_data = dst_dyn_data = heap_alloc_zero(sizeof(ARGB) * (dst_area.right - dst_area.left) * (dst_area.bottom - dst_area.top)); + dst_data = dst_dyn_data = calloc((dst_area.right - dst_area.left) * (dst_area.bottom - dst_area.top), sizeof(ARGB)); if (!dst_data) { - heap_free(src_data); + free(src_data); return OutOfMemory; } dst_color = (ARGB*)(dst_data); @@ -3280,9 +3280,9 @@ GpStatus WINGDIPAPI GdipDrawImagePointsRect(GpGraphics *graphics, GpImage *image
gdi_transform_release(graphics);
- heap_free(src_data); + free(src_data);
- heap_free(dst_dyn_data); + free(dst_dyn_data);
return stat; } @@ -3572,7 +3572,7 @@ GpStatus WINGDIPAPI GdipDrawLinesI(GpGraphics *graphics, GpPen *pen, GDIPCONST
TRACE("(%p, %p, %p, %d)\n", graphics, pen, points, count);
- ptf = heap_alloc_zero(count * sizeof(GpPointF)); + ptf = malloc(count * sizeof(GpPointF)); if(!ptf) return OutOfMemory;
for(i = 0; i < count; i ++){ @@ -3582,7 +3582,7 @@ GpStatus WINGDIPAPI GdipDrawLinesI(GpGraphics *graphics, GpPen *pen, GDIPCONST
retval = GdipDrawLines(graphics, pen, ptf, count);
- heap_free(ptf); + free(ptf); return retval; }
@@ -3693,7 +3693,7 @@ static GpStatus SOFTWARE_GdipDrawThinPath(GpGraphics *graphics, GpPen *pen, GpPa gp_output_area.Width = output_width; gp_output_area.Height = output_height;
- output_bits = heap_alloc_zero(output_width * output_height * sizeof(DWORD)); + output_bits = calloc(output_width * output_height, sizeof(DWORD)); if (!output_bits) stat = OutOfMemory; } @@ -3703,7 +3703,7 @@ static GpStatus SOFTWARE_GdipDrawThinPath(GpGraphics *graphics, GpPen *pen, GpPa if (pen->brush->bt != BrushTypeSolidColor) { /* allocate and draw brush output */ - brush_bits = heap_alloc_zero(output_width * output_height * sizeof(DWORD)); + brush_bits = calloc(output_width * output_height, sizeof(DWORD));
if (brush_bits) { @@ -3728,7 +3728,7 @@ static GpStatus SOFTWARE_GdipDrawThinPath(GpGraphics *graphics, GpPen *pen, GpPa
if (dash_pattern_size != 0) { - dash_pattern = dyn_dash_pattern = heap_alloc(dash_pattern_size); + dash_pattern = dyn_dash_pattern = malloc(dash_pattern_size);
if (dyn_dash_pattern) { @@ -3910,9 +3910,9 @@ static GpStatus SOFTWARE_GdipDrawThinPath(GpGraphics *graphics, GpPen *pen, GpPa gdi_transform_release(graphics); }
- heap_free(brush_bits); - heap_free(dyn_dash_pattern); - heap_free(output_bits); + free(brush_bits); + free(dyn_dash_pattern); + free(output_bits); }
GdipDeletePath(flat_path); @@ -4126,7 +4126,7 @@ GpStatus WINGDIPAPI GdipDrawRectanglesI(GpGraphics *graphics, GpPen *pen, if(!rects || count<=0) return InvalidParameter;
- rectsF = heap_alloc_zero(sizeof(GpRectF) * count); + rectsF = malloc(sizeof(GpRectF) * count); if(!rectsF) return OutOfMemory;
@@ -4134,7 +4134,7 @@ GpStatus WINGDIPAPI GdipDrawRectanglesI(GpGraphics *graphics, GpPen *pen, set_rect(&rectsF[i], rects[i].X, rects[i].Y, rects[i].Width, rects[i].Height);
ret = GdipDrawRectangles(graphics, pen, rectsF, count); - heap_free(rectsF); + free(rectsF);
return ret; } @@ -4184,7 +4184,7 @@ GpStatus WINGDIPAPI GdipFillClosedCurve2I(GpGraphics *graphics, GpBrush *brush, if(count == 1) /* Do nothing */ return Ok;
- ptf = heap_alloc_zero(sizeof(GpPointF)*count); + ptf = malloc(sizeof(GpPointF) * count); if(!ptf) return OutOfMemory;
@@ -4195,7 +4195,7 @@ GpStatus WINGDIPAPI GdipFillClosedCurve2I(GpGraphics *graphics, GpBrush *brush,
stat = GdipFillClosedCurve2(graphics, brush, ptf, count, tension, fill);
- heap_free(ptf); + free(ptf);
return stat; } @@ -4540,7 +4540,7 @@ GpStatus WINGDIPAPI GdipFillRectanglesI(GpGraphics *graphics, GpBrush *brush, GD if(!rects || count <= 0) return InvalidParameter;
- rectsF = heap_alloc_zero(sizeof(GpRectF)*count); + rectsF = malloc(sizeof(GpRectF) * count); if(!rectsF) return OutOfMemory;
@@ -4548,7 +4548,7 @@ GpStatus WINGDIPAPI GdipFillRectanglesI(GpGraphics *graphics, GpBrush *brush, GD set_rect(&rectsF[i], rects[i].X, rects[i].Y, rects[i].Width, rects[i].Height);
ret = GdipFillRectangles(graphics,brush,rectsF,count); - heap_free(rectsF); + free(rectsF);
return ret; } @@ -4657,7 +4657,7 @@ static GpStatus SOFTWARE_GdipFillRegion(GpGraphics *graphics, GpBrush *brush, gp_bound_rect.Width = bound_rect.right - bound_rect.left; gp_bound_rect.Height = bound_rect.bottom - bound_rect.top;
- pixel_data = heap_alloc_zero(sizeof(*pixel_data) * gp_bound_rect.Width * gp_bound_rect.Height); + pixel_data = calloc(gp_bound_rect.Width * gp_bound_rect.Height, sizeof(*pixel_data)); if (!pixel_data) stat = OutOfMemory;
@@ -4672,7 +4672,7 @@ static GpStatus SOFTWARE_GdipFillRegion(GpGraphics *graphics, GpBrush *brush, gp_bound_rect.Height, gp_bound_rect.Width * 4, hregion, PixelFormat32bppARGB);
- heap_free(pixel_data); + free(pixel_data); }
DeleteObject(hregion); @@ -5173,7 +5173,7 @@ GpStatus gdip_format_string(HDC hdc,
if(length == -1) length = lstrlenW(string);
- stringdup = heap_alloc_zero((length + 1) * sizeof(WCHAR)); + stringdup = calloc(length + 1, sizeof(WCHAR)); if(!stringdup) return OutOfMemory;
if (!format) @@ -5200,10 +5200,10 @@ GpStatus gdip_format_string(HDC hdc,
if (hotkeyprefix_count) { - hotkeyprefix_offsets = heap_alloc_zero(sizeof(INT) * hotkeyprefix_count); + hotkeyprefix_offsets = calloc(hotkeyprefix_count, sizeof(INT)); if (!hotkeyprefix_offsets) { - heap_free(stringdup); + free(stringdup); return OutOfMemory; } } @@ -5350,8 +5350,8 @@ GpStatus gdip_format_string(HDC hdc, break; }
- heap_free(stringdup); - heap_free(hotkeyprefix_offsets); + free(stringdup); + free(hotkeyprefix_offsets);
return stat; } @@ -6598,8 +6598,8 @@ GpStatus WINGDIPAPI GdipDrawPolygonI(GpGraphics *graphics,GpPen *pen,GDIPCONST G
TRACE("(%p, %p, %p, %d)\n", graphics, pen, points, count);
- if(count<=0) return InvalidParameter; - ptf = heap_alloc_zero(sizeof(GpPointF) * count); + if(count <= 0) return InvalidParameter; + ptf = malloc(sizeof(GpPointF) * count); if (!ptf) return OutOfMemory;
for(i = 0;i < count; i++){ @@ -6608,7 +6608,7 @@ GpStatus WINGDIPAPI GdipDrawPolygonI(GpGraphics *graphics,GpPen *pen,GDIPCONST G }
ret = GdipDrawPolygon(graphics,pen,ptf,count); - heap_free(ptf); + free(ptf);
return ret; } @@ -6836,7 +6836,7 @@ GpStatus WINGDIPAPI GdipGetClip(GpGraphics *graphics, GpRegion *region) /* free everything except root node and header */ delete_element(®ion->node); memcpy(region, clip, sizeof(GpRegion)); - heap_free(clip); + GdipFree(clip);
return Ok; } @@ -6991,7 +6991,7 @@ GpStatus WINGDIPAPI GdipTransformPointsI(GpGraphics *graphics, GpCoordinateSpace if(count <= 0) return InvalidParameter;
- pointsF = heap_alloc_zero(sizeof(GpPointF) * count); + pointsF = malloc(sizeof(GpPointF) * count); if(!pointsF) return OutOfMemory;
@@ -7007,7 +7007,7 @@ GpStatus WINGDIPAPI GdipTransformPointsI(GpGraphics *graphics, GpCoordinateSpace points[i].X = gdip_round(pointsF[i].X); points[i].Y = gdip_round(pointsF[i].Y); } - heap_free(pointsF); + free(pointsF);
return ret; } @@ -7117,7 +7117,7 @@ GpStatus WINGDIPAPI GdipMeasureDriverString(GpGraphics *graphics, GDIPCONST UINT
if (flags & DriverStringOptionsCmapLookup) { - glyph_indices = dynamic_glyph_indices = heap_alloc_zero(sizeof(WORD) * length); + glyph_indices = dynamic_glyph_indices = malloc(sizeof(WORD) * length); if (!glyph_indices) { DeleteDC(hdc); @@ -7159,7 +7159,7 @@ GpStatus WINGDIPAPI GdipMeasureDriverString(GpGraphics *graphics, GDIPCONST UINT if (max_x < x) max_x = x; }
- heap_free(dynamic_glyph_indices); + free(dynamic_glyph_indices); DeleteDC(hdc); DeleteObject(hfont);
@@ -7190,12 +7190,12 @@ static GpStatus GDI32_GdipDrawDriverString(GpGraphics *graphics, GDIPCONST UINT1
if (!(flags & DriverStringOptionsRealizedAdvance) && length > 1) { - real_positions = heap_alloc(sizeof(*real_positions) * length); - eto_positions = heap_alloc(sizeof(*eto_positions) * 2 * (length - 1)); + real_positions = malloc(sizeof(*real_positions) * length); + eto_positions = malloc(sizeof(*eto_positions) * 2 * (length - 1)); if (!real_positions || !eto_positions) { - heap_free(real_positions); - heap_free(eto_positions); + free(real_positions); + free(eto_positions); return OutOfMemory; } } @@ -7253,8 +7253,8 @@ static GpStatus GDI32_GdipDrawDriverString(GpGraphics *graphics, GDIPCONST UINT1
DeleteObject(hfont);
- heap_free(real_positions); - heap_free(eto_positions); + free(real_positions); + free(eto_positions);
return Ok; } @@ -7291,7 +7291,7 @@ static GpStatus SOFTWARE_GdipDrawDriverString(GpGraphics *graphics, GDIPCONST UI if (flags & unsupported_flags) FIXME("Ignoring flags %x\n", flags & unsupported_flags);
- pti = heap_alloc_zero(sizeof(POINT) * length); + pti = malloc(sizeof(POINT) * length); if (!pti) return OutOfMemory;
@@ -7304,10 +7304,10 @@ static GpStatus SOFTWARE_GdipDrawDriverString(GpGraphics *graphics, GDIPCONST UI } else { - real_positions = heap_alloc_zero(sizeof(PointF) * length); + real_positions = malloc(sizeof(PointF) * length); if (!real_positions) { - heap_free(pti); + free(pti); return OutOfMemory; }
@@ -7316,7 +7316,7 @@ static GpStatus SOFTWARE_GdipDrawDriverString(GpGraphics *graphics, GDIPCONST UI gdip_transform_points(graphics, WineCoordinateSpaceGdiDevice, CoordinateSpaceWorld, real_positions, length); round_points(pti, real_positions, length);
- heap_free(real_positions); + free(real_positions); }
get_font_hfont(graphics, font, format, &hfont, NULL, matrix); @@ -7336,7 +7336,7 @@ static GpStatus SOFTWARE_GdipDrawDriverString(GpGraphics *graphics, GDIPCONST UI if (glyphsize == GDI_ERROR) { ERR("GetGlyphOutlineW failed\n"); - heap_free(pti); + free(pti); DeleteDC(hdc); DeleteObject(hfont); return GenericError; @@ -7368,21 +7368,21 @@ static GpStatus SOFTWARE_GdipDrawDriverString(GpGraphics *graphics, GDIPCONST UI if (max_glyphsize == 0) { /* Nothing to draw. */ - heap_free(pti); + free(pti); DeleteDC(hdc); DeleteObject(hfont); return Ok; }
- glyph_mask = heap_alloc_zero(max_glyphsize); - text_mask = heap_alloc_zero((max_x - min_x) * (max_y - min_y)); + glyph_mask = calloc(1, max_glyphsize); + text_mask = calloc(1, (max_x - min_x) * (max_y - min_y)); text_mask_stride = max_x - min_x;
if (!(glyph_mask && text_mask)) { - heap_free(glyph_mask); - heap_free(text_mask); - heap_free(pti); + free(glyph_mask); + free(text_mask); + free(pti); DeleteDC(hdc); DeleteObject(hfont); return OutOfMemory; @@ -7417,16 +7417,16 @@ static GpStatus SOFTWARE_GdipDrawDriverString(GpGraphics *graphics, GDIPCONST UI } }
- heap_free(pti); + free(pti); DeleteDC(hdc); DeleteObject(hfont); - heap_free(glyph_mask); + free(glyph_mask);
/* get the brush data */ - pixel_data = heap_alloc_zero(4 * (max_x - min_x) * (max_y - min_y)); + pixel_data = calloc((max_x - min_x) * (max_y - min_y), 4); if (!pixel_data) { - heap_free(text_mask); + free(text_mask); return OutOfMemory; }
@@ -7439,8 +7439,8 @@ static GpStatus SOFTWARE_GdipDrawDriverString(GpGraphics *graphics, GDIPCONST UI stat = brush_fill_pixels(graphics, (GpBrush*)brush, (DWORD*)pixel_data, &pixel_area, pixel_area.Width); if (stat != Ok) { - heap_free(text_mask); - heap_free(pixel_data); + free(text_mask); + free(pixel_data); return stat; }
@@ -7457,7 +7457,7 @@ static GpStatus SOFTWARE_GdipDrawDriverString(GpGraphics *graphics, GDIPCONST UI } }
- heap_free(text_mask); + free(text_mask);
gdi_transform_acquire(graphics);
@@ -7467,7 +7467,7 @@ static GpStatus SOFTWARE_GdipDrawDriverString(GpGraphics *graphics, GDIPCONST UI
gdi_transform_release(graphics);
- heap_free(pixel_data); + free(pixel_data);
return stat; } diff --git a/dlls/gdiplus/graphicspath.c b/dlls/gdiplus/graphicspath.c index 63f120a6aba..02fa7e02163 100644 --- a/dlls/gdiplus/graphicspath.c +++ b/dlls/gdiplus/graphicspath.c @@ -45,7 +45,7 @@ struct path_list_node_t { /* init list */ static BOOL init_path_list(path_list_node_t **node, REAL x, REAL y) { - *node = heap_alloc_zero(sizeof(path_list_node_t)); + *node = calloc(1, sizeof(path_list_node_t)); if(!*node) return FALSE;
@@ -64,7 +64,7 @@ static void free_path_list(path_list_node_t *node)
while(n){ n = n->next; - heap_free(node); + free(node); node = n; } } @@ -79,7 +79,7 @@ static path_list_node_t* add_path_list_node(path_list_node_t *node, REAL x, REAL { path_list_node_t *new;
- new = heap_alloc_zero(sizeof(path_list_node_t)); + new = calloc(1, sizeof(path_list_node_t)); if(!new) return NULL;
@@ -319,7 +319,7 @@ GpStatus WINGDIPAPI GdipAddPathArc(GpPath *path, REAL x, REAL y, REAL width, if(count == 0) return Ok;
- points = heap_alloc_zero(sizeof(GpPointF)*count); + points = malloc(sizeof(GpPointF) * count); if(!points) return OutOfMemory;
@@ -327,7 +327,7 @@ GpStatus WINGDIPAPI GdipAddPathArc(GpPath *path, REAL x, REAL y, REAL width,
status = extend_current_figure(path, points, count, PathPointTypeBezier);
- heap_free(points); + free(points); return status; }
@@ -401,7 +401,7 @@ GpStatus WINGDIPAPI GdipAddPathBeziersI(GpPath *path, GDIPCONST GpPoint *points, if(!points || ((count - 1) % 3)) return InvalidParameter;
- ptsF = heap_alloc_zero(sizeof(GpPointF) * count); + ptsF = malloc(sizeof(GpPointF) * count); if(!ptsF) return OutOfMemory;
@@ -411,7 +411,7 @@ GpStatus WINGDIPAPI GdipAddPathBeziersI(GpPath *path, GDIPCONST GpPoint *points, }
ret = GdipAddPathBeziers(path, ptsF, count); - heap_free(ptsF); + free(ptsF);
return ret; } @@ -446,11 +446,11 @@ GpStatus WINGDIPAPI GdipAddPathClosedCurve2(GpPath *path, GDIPCONST GpPointF *po if(!path || !points || count <= 1) return InvalidParameter;
- pt = heap_alloc_zero(len_pt * sizeof(GpPointF)); - pts = heap_alloc_zero((count + 1)*sizeof(GpPointF)); + pt = malloc(len_pt * sizeof(GpPointF)); + pts = malloc((count + 1) * sizeof(GpPointF)); if(!pt || !pts){ - heap_free(pt); - heap_free(pts); + free(pt); + free(pts); return OutOfMemory; }
@@ -496,8 +496,8 @@ GpStatus WINGDIPAPI GdipAddPathClosedCurve2(GpPath *path, GDIPCONST GpPointF *po path->newfigure = TRUE; }
- heap_free(pts); - heap_free(pt); + free(pts); + free(pt);
return stat; } @@ -514,7 +514,7 @@ GpStatus WINGDIPAPI GdipAddPathClosedCurve2I(GpPath *path, GDIPCONST GpPoint *po if(!path || !points || count <= 1) return InvalidParameter;
- ptf = heap_alloc_zero(sizeof(GpPointF)*count); + ptf = malloc(sizeof(GpPointF) * count); if(!ptf) return OutOfMemory;
@@ -525,7 +525,7 @@ GpStatus WINGDIPAPI GdipAddPathClosedCurve2I(GpPath *path, GDIPCONST GpPoint *po
stat = GdipAddPathClosedCurve2(path, ptf, count, tension);
- heap_free(ptf); + free(ptf);
return stat; } @@ -556,7 +556,7 @@ GpStatus WINGDIPAPI GdipAddPathCurve3(GpPath *path, GDIPCONST GpPointF *points, if(!path || !points || offset + 1 >= count || count - offset < nseg + 1 || nseg < 1) return InvalidParameter;
- pt = heap_alloc_zero(len_pt * sizeof(GpPointF)); + pt = calloc(len_pt, sizeof(GpPointF)); if(!pt) return OutOfMemory;
@@ -603,7 +603,7 @@ GpStatus WINGDIPAPI GdipAddPathCurve3(GpPath *path, GDIPCONST GpPointF *points,
stat = extend_current_figure(path, pt, len_pt, PathPointTypeBezier);
- heap_free(pt); + free(pt);
return stat; } @@ -636,7 +636,7 @@ GpStatus WINGDIPAPI GdipAddPathCurve3I(GpPath *path, GDIPCONST GpPoint *points, if(!path || !points || offset + 1 >= count || count - offset < nseg + 1 || nseg < 1) return InvalidParameter;
- ptf = heap_alloc_zero(sizeof(GpPointF)*count); + ptf = malloc(sizeof(GpPointF) * count); if(!ptf) return OutOfMemory;
@@ -647,7 +647,7 @@ GpStatus WINGDIPAPI GdipAddPathCurve3I(GpPath *path, GDIPCONST GpPoint *points,
stat = GdipAddPathCurve3(path, ptf, count, offset, nseg, tension);
- heap_free(ptf); + free(ptf);
return stat; } @@ -714,8 +714,8 @@ GpStatus WINGDIPAPI GdipAddPathLine2I(GpPath *path, GDIPCONST GpPoint *points, I if(count <= 0) return InvalidParameter;
- pointsF = heap_alloc_zero(sizeof(GpPointF) * count); - if(!pointsF) return OutOfMemory; + pointsF = malloc(sizeof(GpPointF) * count); + if(!pointsF) return OutOfMemory;
for(i = 0;i < count; i++){ pointsF[i].X = (REAL)points[i].X; @@ -724,7 +724,7 @@ GpStatus WINGDIPAPI GdipAddPathLine2I(GpPath *path, GDIPCONST GpPoint *points, I
stat = GdipAddPathLine2(path, pointsF, count);
- heap_free(pointsF); + free(pointsF);
return stat; } @@ -842,7 +842,7 @@ GpStatus WINGDIPAPI GdipAddPathPie(GpPath *path, REAL x, REAL y, REAL width, REA if(count == 0) return Ok;
- ptf = heap_alloc_zero(sizeof(GpPointF)*count); + ptf = malloc(sizeof(GpPointF) * count); if(!ptf) return OutOfMemory;
@@ -850,12 +850,12 @@ GpStatus WINGDIPAPI GdipAddPathPie(GpPath *path, REAL x, REAL y, REAL width, REA
status = GdipAddPathLine(path, x + width/2, y + height/2, ptf[0].X, ptf[0].Y); if(status != Ok){ - heap_free(ptf); + free(ptf); return status; } /* one spline is already added as a line endpoint */ if(!lengthen_path(path, count - 1)){ - heap_free(ptf); + free(ptf); return OutOfMemory; }
@@ -867,7 +867,7 @@ GpStatus WINGDIPAPI GdipAddPathPie(GpPath *path, REAL x, REAL y, REAL width, REA
GdipClosePathFigure(path);
- heap_free(ptf); + free(ptf);
return status; } @@ -918,7 +918,7 @@ GpStatus WINGDIPAPI GdipAddPathPolygonI(GpPath *path, GDIPCONST GpPoint *points, if(!points || count < 3) return InvalidParameter;
- ptf = heap_alloc_zero(sizeof(GpPointF) * count); + ptf = malloc(sizeof(GpPointF) * count); if(!ptf) return OutOfMemory;
@@ -929,7 +929,7 @@ GpStatus WINGDIPAPI GdipAddPathPolygonI(GpPath *path, GDIPCONST GpPoint *points,
status = GdipAddPathPolygon(path, ptf, count);
- heap_free(ptf); + free(ptf);
return status; } @@ -981,11 +981,11 @@ static GpStatus format_string_callback(HDC dc, status = GenericError; break; } - origph = ph = heap_alloc_zero(len); + origph = ph = calloc(1, len); start = (char *)ph; if (!ph || !lengthen_path(path, len / sizeof(POINTFX))) { - heap_free(ph); + free(ph); status = OutOfMemory; break; } @@ -1036,7 +1036,7 @@ static GpStatus format_string_callback(HDC dc, x += gm.gmCellIncX * args->scale; y += gm.gmCellIncY * args->scale;
- heap_free(origph); + free(origph); if (status != Ok) break; } @@ -1125,10 +1125,10 @@ GpStatus WINGDIPAPI GdipAddPathString(GpPath* path, GDIPCONST WCHAR* string, INT
if (status != Ok) /* free backup */ { - heap_free(path->pathdata.Points); - heap_free(path->pathdata.Types); + free(path->pathdata.Points); + free(path->pathdata.Types); *path = *backup; - heap_free(backup); + free(backup); return status; } if (format->line_align == StringAlignmentCenter && layoutRect->Y + args.maxY < layoutRect->Height) @@ -1179,17 +1179,17 @@ GpStatus WINGDIPAPI GdipClonePath(GpPath* path, GpPath **clone) if(!path || !clone) return InvalidParameter;
- *clone = heap_alloc_zero(sizeof(GpPath)); + *clone = malloc(sizeof(GpPath)); if(!*clone) return OutOfMemory;
**clone = *path;
- (*clone)->pathdata.Points = heap_alloc_zero(path->datalen * sizeof(PointF)); - (*clone)->pathdata.Types = heap_alloc_zero(path->datalen); + (*clone)->pathdata.Points = malloc(path->datalen * sizeof(PointF)); + (*clone)->pathdata.Types = malloc(path->datalen); if(!(*clone)->pathdata.Points || !(*clone)->pathdata.Types){ - heap_free((*clone)->pathdata.Points); - heap_free((*clone)->pathdata.Types); - heap_free(*clone); + free((*clone)->pathdata.Points); + free((*clone)->pathdata.Types); + free(*clone); return OutOfMemory; }
@@ -1241,7 +1241,7 @@ GpStatus WINGDIPAPI GdipCreatePath(GpFillMode fill, GpPath **path) if(!path) return InvalidParameter;
- *path = heap_alloc_zero(sizeof(GpPath)); + *path = calloc(1, sizeof(GpPath)); if(!*path) return OutOfMemory;
(*path)->fill = fill; @@ -1265,8 +1265,8 @@ GpStatus WINGDIPAPI GdipCreatePath2(GDIPCONST GpPointF* points, return OutOfMemory; }
- *path = heap_alloc_zero(sizeof(GpPath)); - if(!*path) return OutOfMemory; + *path = calloc(1, sizeof(GpPath)); + if(!*path) return OutOfMemory;
if(count > 1 && (types[count-1] & PathPointTypePathTypeMask) == PathPointTypeStart) count = 0; @@ -1284,13 +1284,13 @@ GpStatus WINGDIPAPI GdipCreatePath2(GDIPCONST GpPointF* points, } }
- (*path)->pathdata.Points = heap_alloc_zero(count * sizeof(PointF)); - (*path)->pathdata.Types = heap_alloc_zero(count); + (*path)->pathdata.Points = malloc(count * sizeof(PointF)); + (*path)->pathdata.Types = malloc(count);
if(!(*path)->pathdata.Points || !(*path)->pathdata.Types){ - heap_free((*path)->pathdata.Points); - heap_free((*path)->pathdata.Types); - heap_free(*path); + free((*path)->pathdata.Points); + free((*path)->pathdata.Types); + free(*path); return OutOfMemory; }
@@ -1316,7 +1316,7 @@ GpStatus WINGDIPAPI GdipCreatePath2I(GDIPCONST GpPoint* points,
TRACE("(%p, %p, %d, %d, %p)\n", points, types, count, fill, path);
- ptF = heap_alloc_zero(sizeof(GpPointF)*count); + ptF = malloc(sizeof(GpPointF) * count);
for(i = 0;i < count; i++){ ptF[i].X = (REAL)points[i].X; @@ -1325,7 +1325,7 @@ GpStatus WINGDIPAPI GdipCreatePath2I(GDIPCONST GpPoint* points,
ret = GdipCreatePath2(ptF, types, count, fill, path);
- heap_free(ptF); + free(ptF);
return ret; } @@ -1337,9 +1337,9 @@ GpStatus WINGDIPAPI GdipDeletePath(GpPath *path) if(!path) return InvalidParameter;
- heap_free(path->pathdata.Points); - heap_free(path->pathdata.Types); - heap_free(path); + free(path->pathdata.Points); + free(path->pathdata.Types); + free(path);
return Ok; } @@ -1510,8 +1510,8 @@ GpStatus WINGDIPAPI GdipGetPathPointsI(GpPath *path, GpPoint* points, INT count) if(count <= 0) return InvalidParameter;
- ptf = heap_alloc_zero(sizeof(GpPointF)*count); - if(!ptf) return OutOfMemory; + ptf = malloc(sizeof(GpPointF) * count); + if(!ptf) return OutOfMemory;
ret = GdipGetPathPoints(path,ptf,count); if(ret == Ok) @@ -1519,7 +1519,7 @@ GpStatus WINGDIPAPI GdipGetPathPointsI(GpPath *path, GpPoint* points, INT count) points[i].X = gdip_round(ptf[i].X); points[i].Y = gdip_round(ptf[i].Y); }; - heap_free(ptf); + free(ptf);
return ret; } @@ -1673,12 +1673,12 @@ GpStatus WINGDIPAPI GdipReversePath(GpPath* path)
if(count == 0) return Ok;
- revpath.Points = heap_alloc_zero(sizeof(GpPointF)*count); - revpath.Types = heap_alloc_zero(sizeof(BYTE)*count); + revpath.Points = calloc(count, sizeof(GpPointF)); + revpath.Types = calloc(count, sizeof(BYTE)); revpath.Count = count; if(!revpath.Points || !revpath.Types){ - heap_free(revpath.Points); - heap_free(revpath.Types); + free(revpath.Points); + free(revpath.Types); return OutOfMemory; }
@@ -1708,8 +1708,8 @@ GpStatus WINGDIPAPI GdipReversePath(GpPath* path) memcpy(path->pathdata.Points, revpath.Points, sizeof(GpPointF)*count); memcpy(path->pathdata.Types, revpath.Types, sizeof(BYTE)*count);
- heap_free(revpath.Points); - heap_free(revpath.Types); + free(revpath.Points); + free(revpath.Types);
return Ok; } @@ -2221,7 +2221,7 @@ static void add_anchor(const GpPointF *endpoint, const GpPointF *nextpoint,
if (!custom->fill) { - tmp_points = heap_alloc_zero(custom->pathdata.Count * sizeof(GpPoint)); + tmp_points = malloc(custom->pathdata.Count * sizeof(GpPoint)); if (!tmp_points) { ERR("Out of memory\n"); return; @@ -2378,15 +2378,15 @@ static void widen_dashed_figure(GpPath *path, int start, int end, int closed, break; }
- dash_pattern_scaled = heap_alloc(dash_count * sizeof(REAL)); + dash_pattern_scaled = malloc(dash_count * sizeof(REAL)); if (!dash_pattern_scaled) return;
for (i = 0; i < dash_count; i++) dash_pattern_scaled[i] = dash_pattern_scaling * dash_pattern[i];
- tmp_points = heap_alloc_zero((end - start + 2) * sizeof(GpPoint)); + tmp_points = calloc(end - start + 2, sizeof(GpPoint)); if (!tmp_points) { - heap_free(dash_pattern_scaled); + free(dash_pattern_scaled); return; /* FIXME */ }
@@ -2466,8 +2466,8 @@ static void widen_dashed_figure(GpPath *path, int start, int end, int closed, closed ? LineCapFlat : pen->endcap, pen->customend, last_point); }
- heap_free(dash_pattern_scaled); - heap_free(tmp_points); + free(dash_pattern_scaled); + free(tmp_points); }
GpStatus WINGDIPAPI GdipWidenPath(GpPath *path, GpPen *pen, GpMatrix *matrix, @@ -2632,10 +2632,10 @@ GpStatus WINGDIPAPI GdipAddPathRectangle(GpPath *path, REAL x, REAL y,
fail: /* reverting */ - heap_free(path->pathdata.Points); - heap_free(path->pathdata.Types); + free(path->pathdata.Points); + free(path->pathdata.Types); memcpy(path, backup, sizeof(*path)); - heap_free(backup); + free(backup);
return retstat; } @@ -2678,10 +2678,10 @@ GpStatus WINGDIPAPI GdipAddPathRectangles(GpPath *path, GDIPCONST GpRectF *rects
fail: /* reverting */ - heap_free(path->pathdata.Points); - heap_free(path->pathdata.Types); + free(path->pathdata.Points); + free(path->pathdata.Types); memcpy(path, backup, sizeof(*path)); - heap_free(backup); + free(backup);
return retstat; } @@ -2700,13 +2700,13 @@ GpStatus WINGDIPAPI GdipAddPathRectanglesI(GpPath *path, GDIPCONST GpRect *rects if(count < 0) return OutOfMemory;
- rectsF = heap_alloc_zero(sizeof(GpRectF)*count); + rectsF = malloc(sizeof(GpRectF) * count);
for(i = 0;i < count;i++) set_rect(&rectsF[i], rects[i].X, rects[i].Y, rects[i].Width, rects[i].Height);
retstat = GdipAddPathRectangles(path, rectsF, count); - heap_free(rectsF); + free(rectsF);
return retstat; } diff --git a/dlls/gdiplus/image.c b/dlls/gdiplus/image.c index d680cff9940..806da0cb696 100644 --- a/dlls/gdiplus/image.c +++ b/dlls/gdiplus/image.c @@ -92,7 +92,7 @@ static ColorPalette *get_palette(IWICBitmapFrameDecode *frame, WICBitmapPaletteT UINT count;
IWICPalette_GetColorCount(wic_palette, &count); - palette = heap_alloc(2 * sizeof(UINT) + count * sizeof(ARGB)); + palette = malloc(2 * sizeof(UINT) + count * sizeof(ARGB)); IWICPalette_GetColors(wic_palette, count, (UINT *)palette->Entries, &palette->Count);
IWICPalette_GetType(wic_palette, &type); @@ -1193,7 +1193,7 @@ GpStatus WINGDIPAPI GdipBitmapLockBits(GpBitmap* bitmap, GDIPCONST GpRect* rect, { lockeddata->Stride = (((act_rect.Width * bitspp + 7) / 8) + 3) & ~3;
- bitmap->bitmapbits = heap_alloc_zero(lockeddata->Stride * act_rect.Height); + bitmap->bitmapbits = calloc(lockeddata->Stride, act_rect.Height);
if (!bitmap->bitmapbits) { @@ -1222,7 +1222,7 @@ GpStatus WINGDIPAPI GdipBitmapLockBits(GpBitmap* bitmap, GDIPCONST GpRect* rect,
if (stat != Ok) { - heap_free(bitmap->bitmapbits); + free(bitmap->bitmapbits); bitmap->bitmapbits = NULL; image_unlock(&bitmap->image); return stat; @@ -1271,7 +1271,7 @@ GpStatus WINGDIPAPI GdipBitmapUnlockBits(GpBitmap* bitmap,
if(!(lockeddata->Reserved & ImageLockModeWrite)){ bitmap->lockmode = 0; - heap_free(bitmap->bitmapbits); + free(bitmap->bitmapbits); bitmap->bitmapbits = NULL; image_unlock(&bitmap->image); return Ok; @@ -1303,7 +1303,7 @@ GpStatus WINGDIPAPI GdipBitmapUnlockBits(GpBitmap* bitmap, ERR("failed to convert pixels; this should never happen\n"); }
- heap_free(bitmap->bitmapbits); + free(bitmap->bitmapbits); bitmap->bitmapbits = NULL; bitmap->lockmode = 0;
@@ -1349,7 +1349,7 @@ GpStatus WINGDIPAPI GdipCloneBitmapArea(REAL x, REAL y, REAL width, REAL height,
src_palette = srcBitmap->image.palette;
- dst_palette = heap_alloc_zero(sizeof(UINT) * 2 + sizeof(ARGB) * src_palette->Count); + dst_palette = calloc(1, sizeof(UINT) * 2 + sizeof(ARGB) * src_palette->Count);
if (dst_palette) { @@ -1357,7 +1357,7 @@ GpStatus WINGDIPAPI GdipCloneBitmapArea(REAL x, REAL y, REAL width, REAL height, dst_palette->Count = src_palette->Count; memcpy(dst_palette->Entries, src_palette->Entries, sizeof(ARGB) * src_palette->Count);
- heap_free((*dstBitmap)->image.palette); + free((*dstBitmap)->image.palette); (*dstBitmap)->image.palette = dst_palette; } else @@ -1402,7 +1402,7 @@ GpStatus WINGDIPAPI GdipCloneImage(GpImage *image, GpImage **cloneImage)
metafile = (GpMetafile*)image;
- result = heap_alloc_zero(sizeof(*result)); + result = calloc(1, sizeof(*result)); if (!result) return OutOfMemory;
@@ -1420,7 +1420,7 @@ GpStatus WINGDIPAPI GdipCloneImage(GpImage *image, GpImage **cloneImage)
if (!result->hemf) { - heap_free(result); + free(result); return OutOfMemory; }
@@ -1683,7 +1683,7 @@ GpStatus WINGDIPAPI GdipCreateBitmapFromHICON(HICON hicon, GpBitmap** bitmap) bih.biClrUsed = 0; bih.biClrImportant = 0;
- bits = heap_alloc(height * stride); + bits = malloc(height * stride); if (!bits) { DeleteObject(iinfo.hbmColor); @@ -1709,7 +1709,7 @@ GpStatus WINGDIPAPI GdipCreateBitmapFromHICON(HICON hicon, GpBitmap** bitmap) if (!screendc || ((color_scanlines == 0 || mask_scanlines == 0) && GetLastError() == ERROR_INVALID_PARAMETER)) { - heap_free(bits); + free(bits); GdipBitmapUnlockBits(*bitmap, &lockeddata); GdipDisposeImage(&(*bitmap)->image); return GenericError; @@ -1731,7 +1731,7 @@ GpStatus WINGDIPAPI GdipCreateBitmapFromHICON(HICON hicon, GpBitmap** bitmap) dst_row += lockeddata.Stride; }
- heap_free(bits); + free(bits);
GdipBitmapUnlockBits(*bitmap, &lockeddata);
@@ -1853,7 +1853,7 @@ GpStatus WINGDIPAPI GdipCreateBitmapFromScan0(INT width, INT height, INT stride, { INT size = abs(stride) * height;
- own_bits = bits = heap_alloc_zero(size); + own_bits = bits = calloc(1, size); if (!own_bits) return OutOfMemory;
if (stride < 0) @@ -1861,11 +1861,11 @@ GpStatus WINGDIPAPI GdipCreateBitmapFromScan0(INT width, INT height, INT stride, } }
- *bitmap = heap_alloc_zero(sizeof(GpBitmap)); + *bitmap = calloc(1, sizeof(GpBitmap)); if(!*bitmap) { DeleteObject(hbitmap); - heap_free(own_bits); + free(own_bits); return OutOfMemory; }
@@ -1899,7 +1899,7 @@ GpStatus WINGDIPAPI GdipCreateBitmapFromScan0(INT width, INT height, INT stride, format == PixelFormat4bppIndexed || format == PixelFormat8bppIndexed) { - (*bitmap)->image.palette = heap_alloc_zero(sizeof(UINT) * 2 + sizeof(ARGB) * (1 << PIXELFORMATBPP(format))); + (*bitmap)->image.palette = calloc(1, sizeof(UINT) * 2 + sizeof(ARGB) * (1 << PIXELFORMATBPP(format)));
if (!(*bitmap)->image.palette) { @@ -1971,13 +1971,13 @@ GpStatus WINGDIPAPI GdipCreateCachedBitmap(GpBitmap *bitmap, GpGraphics *graphic if(!bitmap || !graphics || !cachedbmp) return InvalidParameter;
- *cachedbmp = heap_alloc_zero(sizeof(GpCachedBitmap)); + *cachedbmp = calloc(1, sizeof(GpCachedBitmap)); if(!*cachedbmp) return OutOfMemory;
stat = GdipCloneImage(&(bitmap->image), &(*cachedbmp)->image); if(stat != Ok){ - heap_free(*cachedbmp); + free(*cachedbmp); return stat; }
@@ -2005,7 +2005,7 @@ GpStatus WINGDIPAPI GdipCreateHICONFromBitmap(GpBitmap *bitmap, HICON *hicon) xorstride = lockeddata.Width*4; bitssize = (andstride + xorstride) * lockeddata.Height;
- andbits = heap_alloc_zero(bitssize); + andbits = calloc(1, bitssize);
if (andbits) { @@ -2027,7 +2027,7 @@ GpStatus WINGDIPAPI GdipCreateHICONFromBitmap(GpBitmap *bitmap, HICON *hicon) *hicon = CreateIcon(NULL, lockeddata.Width, lockeddata.Height, 1, 32, andbits, xorbits);
- heap_free(andbits); + free(andbits); } else stat = OutOfMemory; @@ -2046,7 +2046,7 @@ GpStatus WINGDIPAPI GdipDeleteCachedBitmap(GpCachedBitmap *cachedbmp) return InvalidParameter;
GdipDisposeImage(cachedbmp->image); - heap_free(cachedbmp); + free(cachedbmp);
return Ok; } @@ -2069,18 +2069,18 @@ static void move_bitmap(GpBitmap *dst, GpBitmap *src, BOOL clobber_palette) assert(src->image.type == ImageTypeBitmap); assert(dst->image.type == ImageTypeBitmap);
- heap_free(dst->bitmapbits); - heap_free(dst->own_bits); + free(dst->bitmapbits); + free(dst->own_bits); DeleteDC(dst->hdc); DeleteObject(dst->hbitmap);
if (clobber_palette) { - heap_free(dst->image.palette); + free(dst->image.palette); dst->image.palette = src->image.palette; } else - heap_free(src->image.palette); + free(src->image.palette);
dst->image.xres = src->image.xres; dst->image.yres = src->image.yres; @@ -2095,7 +2095,7 @@ static void move_bitmap(GpBitmap *dst, GpBitmap *src, BOOL clobber_palette) if (dst->metadata_reader) IWICMetadataReader_Release(dst->metadata_reader); dst->metadata_reader = src->metadata_reader; - heap_free(dst->prop_item); + free(dst->prop_item); dst->prop_item = src->prop_item; dst->prop_count = src->prop_count; if (dst->image.decoder) @@ -2108,7 +2108,7 @@ static void move_bitmap(GpBitmap *dst, GpBitmap *src, BOOL clobber_palette) dst->image.format = src->image.format;
src->image.type = ~0; - heap_free(src); + free(src); }
static GpStatus free_image_data(GpImage *image) @@ -2118,13 +2118,13 @@ static GpStatus free_image_data(GpImage *image)
if (image->type == ImageTypeBitmap) { - heap_free(((GpBitmap*)image)->bitmapbits); - heap_free(((GpBitmap*)image)->own_bits); + free(((GpBitmap*)image)->bitmapbits); + free(((GpBitmap*)image)->own_bits); DeleteDC(((GpBitmap*)image)->hdc); DeleteObject(((GpBitmap*)image)->hbitmap); if (((GpBitmap*)image)->metadata_reader) IWICMetadataReader_Release(((GpBitmap*)image)->metadata_reader); - heap_free(((GpBitmap*)image)->prop_item); + free(((GpBitmap*)image)->prop_item); } else if (image->type == ImageTypeMetafile) METAFILE_Free((GpMetafile *)image); @@ -2136,7 +2136,7 @@ static GpStatus free_image_data(GpImage *image) if (image->decoder) IWICBitmapDecoder_Release(image->decoder); terminate_encoder_wic(image); - heap_free(image->palette); + free(image->palette);
return Ok; } @@ -2150,7 +2150,7 @@ GpStatus WINGDIPAPI GdipDisposeImage(GpImage *image) status = free_image_data(image); if (status != Ok) return status; image->type = ~0; - heap_free(image); + free(image);
return Ok; } @@ -2881,7 +2881,7 @@ GpStatus WINGDIPAPI GdipGetAllPropertyItems(GpImage *image, UINT size, item_size = propvariant_size(&value); if (item_size) { - item = heap_alloc(item_size + sizeof(*item)); + item = malloc(item_size + sizeof(*item));
propvariant_to_item(&value, item, item_size + sizeof(*item), id.uiVal); buf[i].id = item->id; @@ -2891,7 +2891,7 @@ GpStatus WINGDIPAPI GdipGetAllPropertyItems(GpImage *image, UINT size, memcpy(item_value, item->value, item_size); item_value += item_size;
- heap_free(item); + free(item); }
PropVariantClear(&id); @@ -3022,7 +3022,7 @@ static void add_property(GpBitmap *bitmap, PropertyItem *item) if (bitmap->prop_item == NULL) { prop_size = prop_count = 0; - prop_item = heap_alloc_zero(item->length + sizeof(PropertyItem)); + prop_item = calloc(1, item->length + sizeof(PropertyItem)); if (!prop_item) return; } else @@ -3032,7 +3032,7 @@ static void add_property(GpBitmap *bitmap, PropertyItem *item)
GdipGetPropertySize(&bitmap->image, &prop_size, &prop_count);
- prop_item = heap_alloc_zero(prop_size + item->length + sizeof(PropertyItem)); + prop_item = calloc(1, prop_size + item->length + sizeof(PropertyItem)); if (!prop_item) return; memcpy(prop_item, bitmap->prop_item, sizeof(PropertyItem) * bitmap->prop_count); prop_size -= sizeof(PropertyItem) * bitmap->prop_count; @@ -3053,7 +3053,7 @@ static void add_property(GpBitmap *bitmap, PropertyItem *item) prop_item[prop_count].value = (char *)(prop_item + prop_count + 1) + prop_size; memcpy(prop_item[prop_count].value, item->value, item->length);
- heap_free(bitmap->prop_item); + free(bitmap->prop_item); bitmap->prop_item = prop_item; bitmap->prop_count++; } @@ -3109,10 +3109,10 @@ static PropertyItem *get_property(IWICMetadataReader *reader, const GUID *guid, if (item_size) { item_size += sizeof(*item); - item = heap_alloc_zero(item_size); + item = calloc(1, item_size); if (propvariant_to_item(&value, item, item_size, 0) != Ok) { - heap_free(item); + free(item); item = NULL; } } @@ -3153,7 +3153,7 @@ static PropertyItem *get_gif_loopcount(IWICMetadataReader *reader) BYTE *data = appdata->value; if (data[0] == 3 && data[1] == 1) { - loop = heap_alloc_zero(sizeof(*loop) + sizeof(SHORT)); + loop = calloc(1, sizeof(*loop) + sizeof(SHORT)); if (loop) { loop->type = PropertyTagTypeShort; @@ -3168,8 +3168,8 @@ static PropertyItem *get_gif_loopcount(IWICMetadataReader *reader) } }
- heap_free(appext); - heap_free(appdata); + free(appext); + free(appdata);
return loop; } @@ -3220,7 +3220,7 @@ static PropertyItem *get_gif_palette(IWICBitmapDecoder *decoder, IWICMetadataRea UINT i; BYTE *rgb;
- pal = heap_alloc_zero(sizeof(*pal) + count * 3); + pal = calloc(1, sizeof(*pal) + count * 3); if (!pal) return NULL; pal->type = PropertyTagTypeByte; pal->id = PropertyTagGlobalPalette; @@ -3282,7 +3282,7 @@ static void get_gif_frame_property(IWICBitmapFrameDecode *frame, const GUID *for else if (prop->type == PropertyTagTypeShort && prop->length == 2) *value = *(SHORT *)prop->value;
- heap_free(prop); + free(prop); } IWICMetadataReader_Release(reader); } @@ -3303,7 +3303,7 @@ static void gif_metadata_reader(GpBitmap *bitmap, IWICBitmapDecoder *decoder, UI PropertyItem *transparent_idx = NULL, *loop = NULL, *palette = NULL;
IWICBitmapDecoder_GetFrameCount(decoder, &frame_count); - delay = heap_alloc_zero(sizeof(*delay) + frame_count * sizeof(LONG)); + delay = calloc(1, sizeof(*delay) + frame_count * sizeof(LONG)); if (delay) { LONG *value; @@ -3360,7 +3360,7 @@ static void gif_metadata_reader(GpBitmap *bitmap, IWICBitmapDecoder *decoder, UI
if (!loop) { - loop = heap_alloc_zero(sizeof(*loop) + sizeof(SHORT)); + loop = calloc(1, sizeof(*loop) + sizeof(SHORT)); if (loop) { loop->type = PropertyTagTypeShort; @@ -3377,11 +3377,11 @@ static void gif_metadata_reader(GpBitmap *bitmap, IWICBitmapDecoder *decoder, UI if (palette) add_property(bitmap, palette); if (background) add_property(bitmap, background);
- heap_free(delay); - heap_free(comment); - heap_free(loop); - heap_free(palette); - heap_free(background); + free(delay); + free(comment); + free(loop); + free(palette); + free(background);
/* Win7 gdiplus always returns transparent color index from frame 0 */ hr = IWICBitmapDecoder_GetFrame(decoder, 0, &frame); @@ -3409,7 +3409,7 @@ static void gif_metadata_reader(GpBitmap *bitmap, IWICBitmapDecoder *decoder, UI }
if (transparent_idx) add_property(bitmap, transparent_idx); - heap_free(transparent_idx); + free(transparent_idx);
IWICBitmapFrameDecode_Release(frame); } @@ -3422,10 +3422,10 @@ static PropertyItem* create_prop(PROPID propid, PROPVARIANT* value) if (item_size) { item_size += sizeof(*item); - item = heap_alloc_zero(item_size); + item = calloc(1, item_size); if (propvariant_to_item(value, item, item_size, propid) != Ok) { - heap_free(item); + free(item); item = NULL; } } @@ -3476,7 +3476,7 @@ static HRESULT png_read_text(IWICMetadataReader *reader, GpBitmap *bitmap, BOOL };
if (*seen_text == NULL) - *seen_text = heap_alloc_zero(sizeof(BOOL) * ARRAY_SIZE(keywords)); + *seen_text = calloc(ARRAY_SIZE(keywords), sizeof(BOOL)); if (*seen_text == NULL) return E_OUTOFMEMORY;
@@ -3497,7 +3497,7 @@ static HRESULT png_read_text(IWICMetadataReader *reader, GpBitmap *bitmap, BOOL item = create_prop(keywords[i].propid, &value); if (item) add_property(bitmap, item); - heap_free(item); + free(item); } }
@@ -3512,7 +3512,7 @@ static HRESULT png_read_gamma(IWICMetadataReader *reader, GpBitmap *bitmap) PropertyItem* item; ULONG *rational;
- item = heap_alloc_zero(sizeof(*item) + sizeof(ULONG) * 2); + item = calloc(1, sizeof(*item) + sizeof(ULONG) * 2); if (!item) return E_OUTOFMEMORY;
@@ -3523,7 +3523,7 @@ static HRESULT png_read_gamma(IWICMetadataReader *reader, GpBitmap *bitmap) rational[0] = 100000; rational[1] = get_ulong_by_index(reader, 0); add_property(bitmap, item); - heap_free(item); + free(item);
return S_OK; } @@ -3533,7 +3533,7 @@ static HRESULT png_read_whitepoint(IWICMetadataReader *reader, GpBitmap *bitmap) PropertyItem* item; ULONG *rational;
- item = heap_alloc_zero(sizeof(*item) + sizeof(ULONG) * 4); + item = calloc(1, sizeof(*item) + sizeof(ULONG) * 4); if (!item) return E_OUTOFMEMORY;
@@ -3546,7 +3546,7 @@ static HRESULT png_read_whitepoint(IWICMetadataReader *reader, GpBitmap *bitmap) rational[2] = get_ulong_by_index(reader, 1); rational[3] = 100000; add_property(bitmap, item); - heap_free(item); + free(item);
return S_OK; } @@ -3556,7 +3556,7 @@ static HRESULT png_read_chromaticity(IWICMetadataReader *reader, GpBitmap *bitma PropertyItem* item; ULONG *rational;
- item = heap_alloc_zero(sizeof(*item) + sizeof(ULONG) * 12); + item = calloc(1, sizeof(*item) + sizeof(ULONG) * 12); if (!item) return E_OUTOFMEMORY;
@@ -3577,7 +3577,7 @@ static HRESULT png_read_chromaticity(IWICMetadataReader *reader, GpBitmap *bitma rational[10] = get_ulong_by_index(reader, 7); rational[11] = 100000; add_property(bitmap, item); - heap_free(item); + free(item);
return S_OK; } @@ -3608,7 +3608,7 @@ static HRESULT png_read_time(IWICMetadataReader *reader, GpBitmap *bitmap) }
item_size = 20; - item = heap_alloc_zero(sizeof(*item) + item_size); + item = calloc(1, sizeof(*item) + item_size); if (!item) return E_OUTOFMEMORY;
@@ -3620,7 +3620,7 @@ static HRESULT png_read_time(IWICMetadataReader *reader, GpBitmap *bitmap) datetime[0], datetime[1], datetime[2], datetime[3], datetime[4], datetime[5]);
add_property(bitmap, item); - heap_free(item); + free(item);
return S_OK; } @@ -3638,7 +3638,7 @@ static HRESULT png_read_histogram(IWICMetadataReader *reader, GpBitmap *bitmap) item = create_prop(PropertyTagPaletteHistogram, &value); if (item) add_property(bitmap, item); - heap_free(item); + free(item);
PropVariantClear(&value);
@@ -3655,15 +3655,15 @@ static HRESULT png_add_unit_properties(IWICBitmapFrameDecode *frame, GpBitmap *b if (FAILED(hr)) return hr;
- unit = heap_alloc_zero(sizeof(*unit) + 1); - unitX = heap_alloc_zero(sizeof(*unitX) + 4); - unitY = heap_alloc_zero(sizeof(*unitY) + 4); + unit = calloc(1, sizeof(*unit) + 1); + unitX = calloc(1, sizeof(*unitX) + 4); + unitY = calloc(1, sizeof(*unitY) + 4);
if (!unit || !unitX || !unitY) { - heap_free(unit); - heap_free(unitX); - heap_free(unitY); + free(unit); + free(unitX); + free(unitY); return E_OUTOFMEMORY; }
@@ -3673,7 +3673,7 @@ static HRESULT png_add_unit_properties(IWICBitmapFrameDecode *frame, GpBitmap *b unit->value = unit + 1; *(BYTE *)unit->value = 1; add_property(bitmap, unit); - heap_free(unit); + free(unit);
unitX->type = PropertyTagTypeLong; unitX->id = PropertyTagPixelPerUnitX; @@ -3681,7 +3681,7 @@ static HRESULT png_add_unit_properties(IWICBitmapFrameDecode *frame, GpBitmap *b unitX->value = unitX + 1; *(ULONG *)unitX->value = (dpiX == 96.0) ? 0 : gdip_round(dpiX / 0.0254); add_property(bitmap, unitX); - heap_free(unitX); + free(unitX);
unitY->type = PropertyTagTypeLong; unitY->id = PropertyTagPixelPerUnitY; @@ -3689,7 +3689,7 @@ static HRESULT png_add_unit_properties(IWICBitmapFrameDecode *frame, GpBitmap *b unitY->value = unitY + 1; *(ULONG *)unitY->value = (dpiY == 96.0) ? 0 : gdip_round(dpiY / 0.0254); add_property(bitmap, unitY); - heap_free(unitY); + free(unitY);
return S_OK; } @@ -3780,7 +3780,7 @@ static void png_metadata_reader(GpBitmap *bitmap, IWICBitmapDecoder *decoder, UI
IWICMetadataReader_Release(reader); } - heap_free(seen_text); + free(seen_text);
png_add_unit_properties(frame, bitmap);
@@ -3953,7 +3953,7 @@ static GpStatus decode_frame_wic(IWICBitmapDecoder *decoder, BOOL force_conversi IWICBitmapDecoder_AddRef(decoder); if (palette) { - heap_free(bitmap->image.palette); + free(bitmap->image.palette); bitmap->image.palette = palette; } else @@ -4011,7 +4011,7 @@ static GpStatus select_frame_wic(GpImage *image, UINT active_frame) body_offset = RTL_SIZEOF_THROUGH_FIELD(GpImage, lock); memcpy((char *)image + body_offset, (char *)new_image + body_offset, obj_size - body_offset); new_image->type = ~0; - heap_free(new_image); + free(new_image); return Ok; }
@@ -4042,14 +4042,14 @@ static HRESULT blit_gif_frame(GpBitmap *bitmap, IWICBitmapFrameDecode *frame, BO if(FAILED(hr)) return hr;
- new_bits = heap_alloc_zero(width*height*4); + new_bits = calloc(width * height, 4); if(!new_bits) return E_OUTOFMEMORY;
hr = IWICBitmapSource_CopyPixels(source, NULL, width*4, width*height*4, new_bits); IWICBitmapSource_Release(source); if(FAILED(hr)) { - heap_free(new_bits); + free(new_bits); return hr; }
@@ -4062,7 +4062,7 @@ static HRESULT blit_gif_frame(GpBitmap *bitmap, IWICBitmapFrameDecode *frame, BO *dst = *src; } } - heap_free(new_bits); + free(new_bits); return hr; }
@@ -4287,7 +4287,7 @@ static GpStatus decode_image_gif(IStream* stream, GpImage **image) return status;
if(frame_count > 1) { - heap_free((*image)->palette); + free((*image)->palette); (*image)->palette = NULL; } return Ok; @@ -4338,18 +4338,18 @@ static GpStatus load_wmf(IStream *stream, GpMetafile **metafile) hr = IStream_Seek(stream, seek, STREAM_SEEK_SET, NULL); if (FAILED(hr)) return hresult_to_status(hr);
- buf = heap_alloc(mh.mtSize * 2); + buf = malloc(mh.mtSize * 2); if (!buf) return OutOfMemory;
hr = IStream_Read(stream, buf, mh.mtSize * 2, &size); if (hr != S_OK || size != mh.mtSize * 2) { - heap_free(buf); + free(buf); return GenericError; }
hmf = SetMetaFileBitsEx(mh.mtSize * 2, buf); - heap_free(buf); + free(buf); if (!hmf) return GenericError;
@@ -4400,18 +4400,18 @@ static GpStatus load_emf(IStream *stream, GpMetafile **metafile) hr = IStream_Seek(stream, seek, STREAM_SEEK_SET, NULL); if (FAILED(hr)) return hresult_to_status(hr);
- buf = heap_alloc(emh.nBytes); + buf = malloc(emh.nBytes); if (!buf) return OutOfMemory;
hr = IStream_Read(stream, buf, emh.nBytes, &size); if (hr != S_OK || size != emh.nBytes) { - heap_free(buf); + free(buf); return GenericError; }
hemf = SetEnhMetaFileBits(emh.nBytes, buf); - heap_free(buf); + free(buf); if (!hemf) return GenericError;
@@ -5057,10 +5057,10 @@ GpStatus WINGDIPAPI GdipSetImagePalette(GpImage *image, if(!image || !palette || palette->Count > 256) return InvalidParameter;
- new_palette = heap_alloc_zero(2 * sizeof(UINT) + palette->Count * sizeof(ARGB)); + new_palette = calloc(1, 2 * sizeof(UINT) + palette->Count * sizeof(ARGB)); if (!new_palette) return OutOfMemory;
- heap_free(image->palette); + free(image->palette); image->palette = new_palette; image->palette->Flags = palette->Flags; image->palette->Count = palette->Count; @@ -5541,7 +5541,7 @@ GpStatus WINGDIPAPI GdipCreateBitmapFromHBITMAP(HBITMAP hbm, HPALETTE hpal, GpBi if (!num_palette_entries) num_palette_entries = 1 << pbmi->bmiHeader.biBitCount;
- palette = heap_alloc_zero(sizeof(ColorPalette) + sizeof(ARGB) * (num_palette_entries-1)); + palette = calloc(1, sizeof(ColorPalette) + sizeof(ARGB) * (num_palette_entries - 1)); if (!palette) retval = OutOfMemory; else @@ -5558,7 +5558,7 @@ GpStatus WINGDIPAPI GdipCreateBitmapFromHBITMAP(HBITMAP hbm, HPALETTE hpal, GpBi retval = GdipSetImagePalette(&(*bitmap)->image, palette); }
- heap_free(palette); + free(palette); }
if (retval != Ok) @@ -6076,7 +6076,7 @@ GpStatus WINGDIPAPI GdipInitializePalette(ColorPalette *palette, else status = GenericError;
- heap_free(wic_palette); + free(wic_palette);
return status; } diff --git a/dlls/gdiplus/imageattributes.c b/dlls/gdiplus/imageattributes.c index 63bdb206a37..349e52f5be9 100644 --- a/dlls/gdiplus/imageattributes.c +++ b/dlls/gdiplus/imageattributes.c @@ -45,7 +45,7 @@ GpStatus WINGDIPAPI GdipCloneImageAttributes(GDIPCONST GpImageAttributes *imagea { remap_tables[i].enabled = TRUE; remap_tables[i].mapsize = imageattr->colorremaptables[i].mapsize; - remap_tables[i].colormap = heap_alloc(sizeof(ColorMap) * remap_tables[i].mapsize); + remap_tables[i].colormap = malloc(sizeof(ColorMap) * remap_tables[i].mapsize);
if (remap_tables[i].colormap) { @@ -73,7 +73,7 @@ GpStatus WINGDIPAPI GdipCloneImageAttributes(GDIPCONST GpImageAttributes *imagea if (stat != Ok) { for (i=0; i<ColorAdjustTypeCount; i++) - heap_free(remap_tables[i].colormap); + free(remap_tables[i].colormap); }
return stat; @@ -84,8 +84,8 @@ GpStatus WINGDIPAPI GdipCreateImageAttributes(GpImageAttributes **imageattr) if(!imageattr) return InvalidParameter;
- *imageattr = heap_alloc_zero(sizeof(GpImageAttributes)); - if(!*imageattr) return OutOfMemory; + *imageattr = calloc(1, sizeof(GpImageAttributes)); + if(!*imageattr) return OutOfMemory;
(*imageattr)->wrap = WrapModeClamp;
@@ -104,9 +104,9 @@ GpStatus WINGDIPAPI GdipDisposeImageAttributes(GpImageAttributes *imageattr) return InvalidParameter;
for (i=0; i<ColorAdjustTypeCount; i++) - heap_free(imageattr->colorremaptables[i].colormap); + free(imageattr->colorremaptables[i].colormap);
- heap_free(imageattr); + free(imageattr);
return Ok; } @@ -271,21 +271,21 @@ GpStatus WINGDIPAPI GdipSetImageAttributesRemapTable(GpImageAttributes *imageAtt if(!map || !mapSize) return InvalidParameter;
- new_map = heap_alloc_zero(sizeof(*map) * mapSize); + new_map = malloc(sizeof(*map) * mapSize);
if (!new_map) return OutOfMemory;
memcpy(new_map, map, sizeof(*map) * mapSize);
- heap_free(imageAttr->colorremaptables[type].colormap); + free(imageAttr->colorremaptables[type].colormap);
imageAttr->colorremaptables[type].mapsize = mapSize; imageAttr->colorremaptables[type].colormap = new_map; } else { - heap_free(imageAttr->colorremaptables[type].colormap); + free(imageAttr->colorremaptables[type].colormap); imageAttr->colorremaptables[type].colormap = NULL; }
diff --git a/dlls/gdiplus/matrix.c b/dlls/gdiplus/matrix.c index a87235a9cc6..1481ec6634d 100644 --- a/dlls/gdiplus/matrix.c +++ b/dlls/gdiplus/matrix.c @@ -64,8 +64,8 @@ GpStatus WINGDIPAPI GdipCreateMatrix2(REAL m11, REAL m12, REAL m21, REAL m22, if(!matrix) return InvalidParameter;
- *matrix = heap_alloc_zero(sizeof(GpMatrix)); - if(!*matrix) return OutOfMemory; + *matrix = malloc(sizeof(GpMatrix)); + if(!*matrix) return OutOfMemory;
/* first row */ (*matrix)->matrix[0] = m11; @@ -125,8 +125,8 @@ GpStatus WINGDIPAPI GdipCloneMatrix(GpMatrix *matrix, GpMatrix **clone) if(!matrix || !clone) return InvalidParameter;
- *clone = heap_alloc_zero(sizeof(GpMatrix)); - if(!*clone) return OutOfMemory; + *clone = malloc(sizeof(GpMatrix)); + if(!*clone) return OutOfMemory;
**clone = *matrix;
@@ -140,8 +140,8 @@ GpStatus WINGDIPAPI GdipCreateMatrix(GpMatrix **matrix) if(!matrix) return InvalidParameter;
- *matrix = heap_alloc_zero(sizeof(GpMatrix)); - if(!*matrix) return OutOfMemory; + *matrix = malloc(sizeof(GpMatrix)); + if(!*matrix) return OutOfMemory;
(*matrix)->matrix[0] = 1.0; (*matrix)->matrix[1] = 0.0; @@ -160,7 +160,7 @@ GpStatus WINGDIPAPI GdipDeleteMatrix(GpMatrix *matrix) if(!matrix) return InvalidParameter;
- heap_free(matrix); + free(matrix);
return Ok; } @@ -396,7 +396,7 @@ GpStatus WINGDIPAPI GdipTransformMatrixPointsI(GpMatrix *matrix, GpPoint *pts, I if(count <= 0) return InvalidParameter;
- ptsF = heap_alloc_zero(sizeof(GpPointF) * count); + ptsF = malloc(sizeof(GpPointF) * count); if(!ptsF) return OutOfMemory;
@@ -412,7 +412,7 @@ GpStatus WINGDIPAPI GdipTransformMatrixPointsI(GpMatrix *matrix, GpPoint *pts, I pts[i].X = gdip_round(ptsF[i].X); pts[i].Y = gdip_round(ptsF[i].Y); } - heap_free(ptsF); + free(ptsF);
return ret; } @@ -476,7 +476,7 @@ GpStatus WINGDIPAPI GdipVectorTransformMatrixPointsI(GpMatrix *matrix, GpPoint * if(count <= 0) return InvalidParameter;
- ptsF = heap_alloc_zero(sizeof(GpPointF) * count); + ptsF = malloc(sizeof(GpPointF) * count); if(!ptsF) return OutOfMemory;
@@ -492,7 +492,7 @@ GpStatus WINGDIPAPI GdipVectorTransformMatrixPointsI(GpMatrix *matrix, GpPoint * pts[i].X = gdip_round(ptsF[i].X); pts[i].Y = gdip_round(ptsF[i].Y); } - heap_free(ptsF); + free(ptsF);
return ret; } diff --git a/dlls/gdiplus/metafile.c b/dlls/gdiplus/metafile.c index 265aec65c1f..eb8b4197f3f 100644 --- a/dlls/gdiplus/metafile.c +++ b/dlls/gdiplus/metafile.c @@ -688,7 +688,7 @@ void METAFILE_Free(GpMetafile *metafile) { unsigned int i;
- heap_free(metafile->comment_data); + free(metafile->comment_data); DeleteEnhMetaFile(CloseEnhMetaFile(metafile->record_dc)); if (!metafile->preserve_hemf) DeleteEnhMetaFile(metafile->hemf); @@ -721,7 +721,7 @@ static GpStatus METAFILE_AllocateRecord(GpMetafile *metafile, EmfPlusRecordType if (!metafile->comment_data_size) { DWORD data_size = max(256, size * 2 + 4); - metafile->comment_data = heap_alloc_zero(data_size); + metafile->comment_data = calloc(1, data_size);
if (!metafile->comment_data) return OutOfMemory; @@ -737,7 +737,7 @@ static GpStatus METAFILE_AllocateRecord(GpMetafile *metafile, EmfPlusRecordType if (size_needed > metafile->comment_data_size) { DWORD data_size = size_needed * 2; - BYTE *new_data = heap_alloc_zero(data_size); + BYTE *new_data = calloc(1, data_size);
if (!new_data) return OutOfMemory; @@ -745,7 +745,7 @@ static GpStatus METAFILE_AllocateRecord(GpMetafile *metafile, EmfPlusRecordType memcpy(new_data, metafile->comment_data, metafile->comment_data_length);
metafile->comment_data_size = data_size; - heap_free(metafile->comment_data); + free(metafile->comment_data); metafile->comment_data = new_data; }
@@ -1682,7 +1682,7 @@ GpStatus METAFILE_GraphicsDeleted(GpMetafile* metafile) metafile->hemf = CloseEnhMetaFile(metafile->record_dc); metafile->record_dc = NULL;
- heap_free(metafile->comment_data); + free(metafile->comment_data); metafile->comment_data = NULL; metafile->comment_data_size = 0;
@@ -1719,7 +1719,7 @@ GpStatus METAFILE_GraphicsDeleted(GpMetafile* metafile) bounds_rc.bottom = ceilf(metafile->auto_frame_max.Y * y_scale);
buffer_size = GetEnhMetaFileBits(metafile->hemf, 0, NULL); - buffer = heap_alloc(buffer_size); + buffer = malloc(buffer_size); if (buffer) { HENHMETAFILE new_hemf; @@ -1738,7 +1738,7 @@ GpStatus METAFILE_GraphicsDeleted(GpMetafile* metafile) else stat = OutOfMemory;
- heap_free(buffer); + free(buffer); } else stat = OutOfMemory; @@ -1762,7 +1762,7 @@ GpStatus METAFILE_GraphicsDeleted(GpMetafile* metafile)
buffer_size = GetEnhMetaFileBits(metafile->hemf, 0, NULL);
- buffer = heap_alloc(buffer_size); + buffer = malloc(buffer_size); if (buffer) { HRESULT hr; @@ -1774,7 +1774,7 @@ GpStatus METAFILE_GraphicsDeleted(GpMetafile* metafile) if (FAILED(hr)) stat = hresult_to_status(hr);
- heap_free(buffer); + free(buffer); } else stat = OutOfMemory; @@ -2040,8 +2040,8 @@ static GpStatus metafile_deserialize_path(const BYTE *record_data, UINT data_siz return status;
(*path)->pathdata.Count = data->PathPointCount; - (*path)->pathdata.Points = GdipAlloc(data->PathPointCount * sizeof(*(*path)->pathdata.Points)); - (*path)->pathdata.Types = GdipAlloc(data->PathPointCount * sizeof(*(*path)->pathdata.Types)); + (*path)->pathdata.Points = malloc(data->PathPointCount * sizeof(*(*path)->pathdata.Points)); + (*path)->pathdata.Types = malloc(data->PathPointCount * sizeof(*(*path)->pathdata.Types)); (*path)->datalen = (*path)->pathdata.Count;
if (!(*path)->pathdata.Points || !(*path)->pathdata.Types) @@ -2093,14 +2093,14 @@ static GpStatus metafile_read_region_node(struct memory_buffer *mbuf, GpRegion * { region_element *left, *right;
- left = heap_alloc_zero(sizeof(*left)); + left = calloc(1, sizeof(*left)); if (!left) return OutOfMemory;
- right = heap_alloc_zero(sizeof(*right)); + right = calloc(1, sizeof(*right)); if (!right) { - heap_free(left); + free(left); return OutOfMemory; }
@@ -2117,8 +2117,8 @@ static GpStatus metafile_read_region_node(struct memory_buffer *mbuf, GpRegion * } }
- heap_free(left); - heap_free(right); + free(left); + free(right); return status; } case RegionDataRect: @@ -2707,14 +2707,14 @@ static GpStatus METAFILE_PlaybackObject(GpMetafile *metafile, UINT flags, UINT d if (data_size < data->Length * sizeof(WCHAR)) return InvalidParameter;
- if (!(familyname = GdipAlloc((data->Length + 1) * sizeof(*familyname)))) + if (!(familyname = malloc((data->Length + 1) * sizeof(*familyname)))) return OutOfMemory;
memcpy(familyname, data->FamilyName, data->Length * sizeof(*familyname)); familyname[data->Length] = 0;
status = GdipCreateFontFamilyFromName(familyname, NULL, &family); - GdipFree(familyname); + free(familyname);
/* If a font family cannot be created from family name, native falls back to a sans serif font. */ @@ -2785,7 +2785,7 @@ GpStatus WINGDIPAPI GdipPlayMetafileRecord(GDIPCONST GpMetafile *metafile, /* regular EMF record */ if (metafile->playback_dc) { - ENHMETARECORD *record = heap_alloc_zero(dataSize + 8); + ENHMETARECORD *record = calloc(1, dataSize + 8);
if (record) { @@ -2800,7 +2800,7 @@ GpStatus WINGDIPAPI GdipPlayMetafileRecord(GDIPCONST GpMetafile *metafile, record, metafile->handle_count) == 0) ERR("PlayEnhMetaFileRecord failed\n");
- heap_free(record); + free(record); } else return OutOfMemory; @@ -2871,7 +2871,7 @@ GpStatus WINGDIPAPI GdipPlayMetafileRecord(GDIPCONST GpMetafile *metafile, EmfPlusRect *int_rects = (EmfPlusRect*)(record+1); int i;
- rects = temp_rects = heap_alloc_zero(sizeof(GpRectF) * record->Count); + rects = temp_rects = calloc(record->Count, sizeof(GpRectF)); if (rects) { for (i=0; i<record->Count; i++) @@ -2895,7 +2895,7 @@ GpStatus WINGDIPAPI GdipPlayMetafileRecord(GDIPCONST GpMetafile *metafile, }
GdipDeleteBrush(temp_brush); - heap_free(temp_rects); + free(temp_rects);
return stat; } @@ -3050,14 +3050,14 @@ GpStatus WINGDIPAPI GdipPlayMetafileRecord(GDIPCONST GpMetafile *metafile, GpRectF scaled_srcrect; GpMatrix transform;
- cont = heap_alloc_zero(sizeof(*cont)); + cont = calloc(1, sizeof(*cont)); if (!cont) return OutOfMemory;
stat = GdipCloneRegion(metafile->clip, &cont->clip); if (stat != Ok) { - heap_free(cont); + free(cont); return stat; }
@@ -3066,7 +3066,7 @@ GpStatus WINGDIPAPI GdipPlayMetafileRecord(GDIPCONST GpMetafile *metafile, if (stat != Ok) { GdipDeleteRegion(cont->clip); - heap_free(cont); + free(cont); return stat; }
@@ -3104,14 +3104,14 @@ GpStatus WINGDIPAPI GdipPlayMetafileRecord(GDIPCONST GpMetafile *metafile, EmfPlusContainerRecord *record = (EmfPlusContainerRecord*)header; container* cont;
- cont = heap_alloc_zero(sizeof(*cont)); + cont = calloc(1, sizeof(*cont)); if (!cont) return OutOfMemory;
stat = GdipCloneRegion(metafile->clip, &cont->clip); if (stat != Ok) { - heap_free(cont); + free(cont); return stat; }
@@ -3123,7 +3123,7 @@ GpStatus WINGDIPAPI GdipPlayMetafileRecord(GDIPCONST GpMetafile *metafile, if (stat != Ok) { GdipDeleteRegion(cont->clip); - heap_free(cont); + free(cont); return stat; }
@@ -3170,7 +3170,7 @@ GpStatus WINGDIPAPI GdipPlayMetafileRecord(GDIPCONST GpMetafile *metafile, { list_remove(&cont2->entry); GdipDeleteRegion(cont2->clip); - heap_free(cont2); + free(cont2); }
if (type == BEGIN_CONTAINER) @@ -3185,7 +3185,7 @@ GpStatus WINGDIPAPI GdipPlayMetafileRecord(GDIPCONST GpMetafile *metafile,
list_remove(&cont->entry); GdipDeleteRegion(cont->clip); - heap_free(cont); + free(cont); }
break; @@ -3399,7 +3399,7 @@ GpStatus WINGDIPAPI GdipPlayMetafileRecord(GDIPCONST GpMetafile *metafile,
if (flags & (0x800 | 0x4000)) { - GpPointF *points = GdipAlloc(fill->Count * sizeof(*points)); + GpPointF *points = malloc(fill->Count * sizeof(*points)); if (points) { if (flags & 0x800) /* P */ @@ -3421,7 +3421,7 @@ GpStatus WINGDIPAPI GdipPlayMetafileRecord(GDIPCONST GpMetafile *metafile,
stat = GdipFillClosedCurve2(real_metafile->playback_graphics, brush, points, fill->Count, fill->Tension, mode); - GdipFree(points); + free(points); } else stat = OutOfMemory; @@ -3613,7 +3613,7 @@ GpStatus WINGDIPAPI GdipPlayMetafileRecord(GDIPCONST GpMetafile *metafile, { DWORD i;
- rects = GdipAlloc(draw->Count * sizeof(*rects)); + rects = malloc(draw->Count * sizeof(*rects)); if (!rects) return OutOfMemory;
@@ -3628,7 +3628,7 @@ GpStatus WINGDIPAPI GdipPlayMetafileRecord(GDIPCONST GpMetafile *metafile,
stat = GdipDrawRectangles(real_metafile->playback_graphics, real_metafile->objtable[pen].u.pen, rects ? rects : (GpRectF *)draw->RectData.rectF, draw->Count); - GdipFree(rects); + free(rects); return stat; } case EmfPlusRecordTypeDrawDriverString: @@ -3692,7 +3692,7 @@ GpStatus WINGDIPAPI GdipPlayMetafileRecord(GDIPCONST GpMetafile *metafile, if (draw->MatrixPresent) alloc_size += sizeof(*matrix);
- positions = alignedmem = heap_alloc(alloc_size); + positions = alignedmem = malloc(alloc_size); if (!positions) { GdipDeleteBrush((GpBrush*)solidfill); @@ -3712,7 +3712,7 @@ GpStatus WINGDIPAPI GdipPlayMetafileRecord(GDIPCONST GpMetafile *metafile, draw->DriverStringOptionsFlags, matrix);
GdipDeleteBrush((GpBrush*)solidfill); - heap_free(alignedmem); + free(alignedmem);
return stat; } @@ -3948,7 +3948,7 @@ GpStatus WINGDIPAPI GdipEnumerateMetafileSrcRectDestPoints(GpGraphics *graphics, container* cont = LIST_ENTRY(list_head(&real_metafile->containers), container, entry); list_remove(&cont->entry); GdipDeleteRegion(cont->clip); - heap_free(cont); + free(cont); }
GdipEndContainer(graphics, state); @@ -4248,7 +4248,7 @@ GpStatus WINGDIPAPI GdipCreateMetafileFromEmf(HENHMETAFILE hemf, BOOL delete, if (stat != Ok) return stat;
- *metafile = heap_alloc_zero(sizeof(GpMetafile)); + *metafile = calloc(1, sizeof(GpMetafile)); if (!*metafile) return OutOfMemory;
@@ -4296,11 +4296,11 @@ GpStatus WINGDIPAPI GdipCreateMetafileFromWmf(HMETAFILE hwmf, BOOL delete, read = GetMetaFileBitsEx(hwmf, 0, NULL); if(!read) return GenericError; - copy = heap_alloc_zero(read); + copy = malloc(read); GetMetaFileBitsEx(hwmf, read, copy);
hemf = SetWinMetaFileBits(read, copy, NULL, NULL); - heap_free(copy); + free(copy);
/* FIXME: We should store and use hwmf instead of converting to hemf */ retval = GdipCreateMetafileFromEmf(hemf, TRUE, metafile); @@ -4516,7 +4516,7 @@ GpStatus WINGDIPAPI GdipRecordMetafileFileName(GDIPCONST WCHAR* fileName, if (!record_dc) return GenericError;
- *metafile = heap_alloc_zero(sizeof(GpMetafile)); + *metafile = calloc(1, sizeof(GpMetafile)); if(!*metafile) { DeleteEnhMetaFile(CloseEnhMetaFile(record_dc)); @@ -4557,7 +4557,7 @@ GpStatus WINGDIPAPI GdipRecordMetafileFileName(GDIPCONST WCHAR* fileName, if (stat != Ok) { DeleteEnhMetaFile(CloseEnhMetaFile(record_dc)); - heap_free(*metafile); + free(*metafile); *metafile = NULL; return OutOfMemory; } diff --git a/dlls/gdiplus/pathiterator.c b/dlls/gdiplus/pathiterator.c index 1e8a4c2aaca..133ef1fb321 100644 --- a/dlls/gdiplus/pathiterator.c +++ b/dlls/gdiplus/pathiterator.c @@ -40,14 +40,14 @@ GpStatus WINGDIPAPI GdipCreatePathIter(GpPathIterator **iterator, GpPath* path) if(!iterator) return InvalidParameter;
- *iterator = heap_alloc_zero(sizeof(GpPathIterator)); - if(!*iterator) return OutOfMemory; + *iterator = calloc(1, sizeof(GpPathIterator)); + if(!*iterator) return OutOfMemory;
if(path){ size = path->pathdata.Count;
- (*iterator)->pathdata.Types = heap_alloc_zero(size); - (*iterator)->pathdata.Points = heap_alloc_zero(size * sizeof(PointF)); + (*iterator)->pathdata.Types = malloc(size); + (*iterator)->pathdata.Points = malloc(size * sizeof(PointF));
memcpy((*iterator)->pathdata.Types, path->pathdata.Types, size); memcpy((*iterator)->pathdata.Points, path->pathdata.Points,size * sizeof(PointF)); @@ -73,9 +73,9 @@ GpStatus WINGDIPAPI GdipDeletePathIter(GpPathIterator *iter) if(!iter) return InvalidParameter;
- heap_free(iter->pathdata.Types); - heap_free(iter->pathdata.Points); - heap_free(iter); + free(iter->pathdata.Types); + free(iter->pathdata.Points); + free(iter);
return Ok; } diff --git a/dlls/gdiplus/pen.c b/dlls/gdiplus/pen.c index 05acd54b36d..8c225bc5a68 100644 --- a/dlls/gdiplus/pen.c +++ b/dlls/gdiplus/pen.c @@ -94,8 +94,8 @@ GpStatus WINGDIPAPI GdipClonePen(GpPen *pen, GpPen **clonepen) if(!pen || !clonepen) return InvalidParameter;
- *clonepen = heap_alloc_zero(sizeof(GpPen)); - if(!*clonepen) return OutOfMemory; + *clonepen = malloc(sizeof(GpPen)); + if(!*clonepen) return OutOfMemory;
**clonepen = *pen;
@@ -115,7 +115,7 @@ GpStatus WINGDIPAPI GdipClonePen(GpPen *pen, GpPen **clonepen)
if (stat == Ok && pen->dashes) { - (*clonepen)->dashes = heap_alloc_zero(pen->numdashes * sizeof(REAL)); + (*clonepen)->dashes = malloc(pen->numdashes * sizeof(REAL)); if ((*clonepen)->dashes) memcpy((*clonepen)->dashes, pen->dashes, pen->numdashes * sizeof(REAL)); else @@ -124,7 +124,7 @@ GpStatus WINGDIPAPI GdipClonePen(GpPen *pen, GpPen **clonepen)
if (stat == Ok && pen->compound_array) { - (*clonepen)->compound_array = heap_alloc_zero(pen->compound_array_size * sizeof(REAL)); + (*clonepen)->compound_array = malloc(pen->compound_array_size * sizeof(REAL)); if ((*clonepen)->compound_array) memcpy((*clonepen)->compound_array, pen->compound_array, pen->compound_array_size * sizeof(REAL)); else @@ -168,8 +168,8 @@ GpStatus WINGDIPAPI GdipCreatePen2(GpBrush *brush, REAL width, GpUnit unit, if(!pen || !brush) return InvalidParameter;
- gp_pen = heap_alloc_zero(sizeof(GpPen)); - if(!gp_pen) return OutOfMemory; + gp_pen = calloc(1, sizeof(GpPen)); + if(!gp_pen) return OutOfMemory;
gp_pen->style = GP_DEFAULT_PENSTYLE; gp_pen->width = width; @@ -187,7 +187,7 @@ GpStatus WINGDIPAPI GdipCreatePen2(GpBrush *brush, REAL width, GpUnit unit,
if(!((gp_pen->unit == UnitWorld) || (gp_pen->unit == UnitPixel))) { FIXME("UnitWorld, UnitPixel only supported units\n"); - heap_free(gp_pen); + free(gp_pen); return NotImplemented; }
@@ -210,9 +210,9 @@ GpStatus WINGDIPAPI GdipDeletePen(GpPen *pen) GdipDeleteBrush(pen->brush); GdipDeleteCustomLineCap(pen->customstart); GdipDeleteCustomLineCap(pen->customend); - heap_free(pen->compound_array); - heap_free(pen->dashes); - heap_free(pen); + free(pen->compound_array); + free(pen->dashes); + free(pen);
return Ok; } @@ -577,10 +577,10 @@ GpStatus WINGDIPAPI GdipSetPenCompoundArray(GpPen *pen, GDIPCONST REAL *compound return InvalidParameter; }
- tmp = heap_alloc_zero(count * sizeof(REAL)); + tmp = malloc(count * sizeof(REAL)); if(!tmp) return OutOfMemory; - heap_free(pen->compound_array); + free(pen->compound_array); pen->compound_array = tmp; memcpy(pen->compound_array, compoundarray, count * sizeof(REAL)); pen->compound_array_size = count; @@ -645,11 +645,11 @@ GpStatus WINGDIPAPI GdipSetPenDashArray(GpPen *pen, GDIPCONST REAL *dash, return InvalidParameter; }
- heap_free(pen->dashes); + free(pen->dashes); pen->dashes = NULL;
if(count > 0) - pen->dashes = heap_alloc_zero(count * sizeof(REAL)); + pen->dashes = malloc(count * sizeof(REAL)); if(!pen->dashes){ pen->numdashes = 0; return OutOfMemory; @@ -695,7 +695,7 @@ GpStatus WINGDIPAPI GdipSetPenDashStyle(GpPen *pen, GpDashStyle dash) return InvalidParameter;
if(dash != DashStyleCustom){ - heap_free(pen->dashes); + free(pen->dashes); pen->dashes = NULL; pen->numdashes = 0; } diff --git a/dlls/gdiplus/region.c b/dlls/gdiplus/region.c index d0d9f4ba54e..11ec2e72322 100644 --- a/dlls/gdiplus/region.c +++ b/dlls/gdiplus/region.c @@ -144,7 +144,7 @@ static inline GpStatus clone_element(const region_element* element,
/* root node is allocated with GpRegion */ if(!*element2){ - *element2 = heap_alloc_zero(sizeof(region_element)); + *element2 = calloc(1, sizeof(region_element)); if (!*element2) return OutOfMemory; } @@ -217,7 +217,7 @@ GpStatus WINGDIPAPI GdipCloneRegion(GpRegion *region, GpRegion **clone) if (!(region && clone)) return InvalidParameter;
- *clone = heap_alloc_zero(sizeof(GpRegion)); + *clone = GdipAlloc(sizeof(GpRegion)); if (!*clone) return OutOfMemory; element = &(*clone)->node; @@ -248,11 +248,11 @@ GpStatus WINGDIPAPI GdipCombineRegionPath(GpRegion *region, GpPath *path, Combin if(mode == CombineModeReplace){ delete_element(®ion->node); memcpy(region, path_region, sizeof(GpRegion)); - heap_free(path_region); + free(path_region); return Ok; }
- left = heap_alloc_zero(sizeof(region_element)); + left = malloc(sizeof(region_element)); if (left) { *left = region->node; @@ -267,7 +267,7 @@ GpStatus WINGDIPAPI GdipCombineRegionPath(GpRegion *region, GpPath *path, Combin else stat = OutOfMemory;
- heap_free(left); + free(left); GdipDeleteRegion(path_region); return stat; } @@ -295,11 +295,11 @@ GpStatus WINGDIPAPI GdipCombineRegionRect(GpRegion *region, if(mode == CombineModeReplace){ delete_element(®ion->node); memcpy(region, rect_region, sizeof(GpRegion)); - heap_free(rect_region); + free(rect_region); return Ok; }
- left = heap_alloc_zero(sizeof(region_element)); + left = malloc(sizeof(region_element)); if (left) { memcpy(left, ®ion->node, sizeof(region_element)); @@ -314,7 +314,7 @@ GpStatus WINGDIPAPI GdipCombineRegionRect(GpRegion *region, else stat = OutOfMemory;
- heap_free(left); + free(left); GdipDeleteRegion(rect_region); return stat; } @@ -358,11 +358,11 @@ GpStatus WINGDIPAPI GdipCombineRegionRegion(GpRegion *region1,
delete_element(®ion1->node); memcpy(region1, reg2copy, sizeof(GpRegion)); - heap_free(reg2copy); + free(reg2copy); return Ok; }
- left = heap_alloc_zero(sizeof(region_element)); + left = malloc(sizeof(region_element)); if (!left) return OutOfMemory;
@@ -370,7 +370,7 @@ GpStatus WINGDIPAPI GdipCombineRegionRegion(GpRegion *region1, stat = clone_element(®ion2->node, &right); if (stat != Ok) { - heap_free(left); + free(left); return OutOfMemory; }
@@ -390,7 +390,7 @@ GpStatus WINGDIPAPI GdipCreateRegion(GpRegion **region) if(!region) return InvalidParameter;
- *region = heap_alloc_zero(sizeof(GpRegion)); + *region = calloc(1, sizeof(GpRegion)); if(!*region) return OutOfMemory;
@@ -428,7 +428,7 @@ GpStatus WINGDIPAPI GdipCreateRegionPath(GpPath *path, GpRegion **region) if (!(path && region)) return InvalidParameter;
- *region = heap_alloc_zero(sizeof(GpRegion)); + *region = calloc(1, sizeof(GpRegion)); if(!*region) return OutOfMemory; stat = init_region(*region, RegionDataPath); @@ -462,7 +462,7 @@ GpStatus WINGDIPAPI GdipCreateRegionRect(GDIPCONST GpRectF *rect, if (!(rect && region)) return InvalidParameter;
- *region = heap_alloc_zero(sizeof(GpRegion)); + *region = calloc(1, sizeof(GpRegion)); stat = init_region(*region, RegionDataRect); if(stat != Ok) { @@ -510,32 +510,32 @@ GpStatus WINGDIPAPI GdipCreateRegionHrgn(HRGN hrgn, GpRegion **region) if(!region || !(size = GetRegionData(hrgn, 0, NULL))) return InvalidParameter;
- buf = heap_alloc_zero(size); + buf = malloc(size); if(!buf) return OutOfMemory;
if(!GetRegionData(hrgn, size, buf)){ - heap_free(buf); + free(buf); return GenericError; }
if(buf->rdh.nCount == 0){ if((stat = GdipCreateRegion(&local)) != Ok){ - heap_free(buf); + free(buf); return stat; } if((stat = GdipSetEmpty(local)) != Ok){ - heap_free(buf); + free(buf); GdipDeleteRegion(local); return stat; } *region = local; - heap_free(buf); + free(buf); return Ok; }
if((stat = GdipCreatePath(FillModeAlternate, &path)) != Ok){ - heap_free(buf); + free(buf); return stat; }
@@ -543,7 +543,7 @@ GpStatus WINGDIPAPI GdipCreateRegionHrgn(HRGN hrgn, GpRegion **region) for(i = 0; i < buf->rdh.nCount; i++){ if((stat = GdipAddPathRectangle(path, (REAL)rect->left, (REAL)rect->top, (REAL)(rect->right - rect->left), (REAL)(rect->bottom - rect->top))) != Ok){ - heap_free(buf); + free(buf); GdipDeletePath(path); return stat; } @@ -552,7 +552,7 @@ GpStatus WINGDIPAPI GdipCreateRegionHrgn(HRGN hrgn, GpRegion **region)
stat = GdipCreateRegionPath(path, region);
- heap_free(buf); + free(buf); GdipDeletePath(path); return stat; } @@ -568,7 +568,7 @@ GpStatus WINGDIPAPI GdipDeleteRegion(GpRegion *region) return InvalidParameter;
delete_element(®ion->node); - heap_free(region); + free(region);
return Ok; } @@ -787,12 +787,12 @@ static GpStatus read_element(struct memory_buffer *mbuf, GpRegion *region, regio { region_element *left, *right;
- left = heap_alloc_zero(sizeof(region_element)); + left = calloc(1, sizeof(region_element)); if (!left) return OutOfMemory; - right = heap_alloc_zero(sizeof(region_element)); + right = calloc(1, sizeof(region_element)); if (!right) { - heap_free(left); + free(left); return OutOfMemory; }
@@ -809,8 +809,8 @@ static GpStatus read_element(struct memory_buffer *mbuf, GpRegion *region, regio } }
- heap_free(left); - heap_free(right); + free(left); + free(right); return status; }
@@ -1447,7 +1447,7 @@ static GpStatus transform_region_element(region_element* element, GpMatrix *matr { /* Steal the element from the created region. */ memcpy(element, &new_region->node, sizeof(region_element)); - heap_free(new_region); + free(new_region); } else return stat; @@ -1553,7 +1553,7 @@ static GpStatus get_region_scans_data(GpRegion *region, GpMatrix *matrix, LPRGND { data_size = GetRegionData(hrgn, 0, NULL);
- *data = heap_alloc_zero(data_size); + *data = malloc(data_size);
if (*data) GetRegionData(hrgn, data_size, *data); @@ -1566,7 +1566,7 @@ static GpStatus get_region_scans_data(GpRegion *region, GpMatrix *matrix, LPRGND { data_size = sizeof(RGNDATAHEADER) + sizeof(RECT);
- *data = heap_alloc_zero(data_size); + *data = calloc(1, data_size);
if (*data) { @@ -1605,7 +1605,7 @@ GpStatus WINGDIPAPI GdipGetRegionScansCount(GpRegion *region, UINT *count, GpMat if (stat == Ok) { *count = data->rdh.nCount; - heap_free(data); + free(data); }
return stat; @@ -1639,7 +1639,7 @@ GpStatus WINGDIPAPI GdipGetRegionScansI(GpRegion *region, GpRect *scans, INT *co } }
- heap_free(data); + free(data); }
return Ok; @@ -1673,7 +1673,7 @@ GpStatus WINGDIPAPI GdipGetRegionScans(GpRegion *region, GpRectF *scans, INT *co } }
- heap_free(data); + free(data); }
return Ok; diff --git a/dlls/gdiplus/stringformat.c b/dlls/gdiplus/stringformat.c index e376e7b36c3..b220dfc2776 100644 --- a/dlls/gdiplus/stringformat.c +++ b/dlls/gdiplus/stringformat.c @@ -66,11 +66,11 @@ void init_generic_string_formats(void)
void free_generic_string_formats(void) { - heap_free(generic_default_format.character_ranges); - heap_free(generic_default_format.tabs); + free(generic_default_format.character_ranges); + free(generic_default_format.tabs);
- heap_free(generic_typographic_format.character_ranges); - heap_free(generic_typographic_format.tabs); + free(generic_typographic_format.character_ranges); + free(generic_typographic_format.tabs); }
GpStatus WINGDIPAPI GdipCreateStringFormat(INT attr, LANGID lang, @@ -81,8 +81,8 @@ GpStatus WINGDIPAPI GdipCreateStringFormat(INT attr, LANGID lang, if(!format) return InvalidParameter;
- *format = heap_alloc_zero(sizeof(GpStringFormat)); - if(!*format) return OutOfMemory; + *format = calloc(1, sizeof(GpStringFormat)); + if(!*format) return OutOfMemory;
(*format)->attr = attr; (*format)->lang = lang; @@ -110,9 +110,9 @@ GpStatus WINGDIPAPI GdipDeleteStringFormat(GpStringFormat *format) if (format == &generic_default_format || format == &generic_typographic_format) return Ok;
- heap_free(format->character_ranges); - heap_free(format->tabs); - heap_free(format); + free(format->character_ranges); + free(format->tabs); + free(format);
return Ok; } @@ -297,11 +297,11 @@ GpStatus WINGDIPAPI GdipSetStringFormatMeasurableCharacterRanges(
TRACE("%p, %d, %p\n", format, rangeCount, ranges);
- new_ranges = heap_alloc_zero(rangeCount * sizeof(CharacterRange)); + new_ranges = malloc(rangeCount * sizeof(CharacterRange)); if (!new_ranges) return OutOfMemory;
- heap_free(format->character_ranges); + free(format->character_ranges); format->character_ranges = new_ranges; memcpy(format->character_ranges, ranges, sizeof(CharacterRange) * rangeCount); format->range_count = rangeCount; @@ -319,16 +319,9 @@ GpStatus WINGDIPAPI GdipSetStringFormatTabStops(GpStringFormat *format, REAL fir
if(count > 0){ if(firsttab < 0.0) return NotImplemented; - /* first time allocation */ - if(format->tabcount == 0){ - format->tabs = heap_alloc_zero(sizeof(REAL)*count); - if(!format->tabs) - return OutOfMemory; - } - /* reallocation */ - if((format->tabcount < count) && (format->tabcount > 0)){ + if(format->tabcount < count){ REAL *ptr; - ptr = heap_realloc(format->tabs, sizeof(REAL)*count); + ptr = realloc(format->tabs, sizeof(REAL) * count); if(!ptr) return OutOfMemory; format->tabs = ptr; @@ -371,15 +364,15 @@ GpStatus WINGDIPAPI GdipCloneStringFormat(GDIPCONST GpStringFormat *format, GpSt if(!format || !newFormat) return InvalidParameter;
- *newFormat = heap_alloc_zero(sizeof(GpStringFormat)); - if(!*newFormat) return OutOfMemory; + *newFormat = malloc(sizeof(GpStringFormat)); + if(!*newFormat) return OutOfMemory;
**newFormat = *format;
if(format->tabcount > 0){ - (*newFormat)->tabs = heap_alloc_zero(sizeof(REAL) * format->tabcount); + (*newFormat)->tabs = malloc(sizeof(REAL) * format->tabcount); if(!(*newFormat)->tabs){ - heap_free(*newFormat); + free(*newFormat); return OutOfMemory; } memcpy((*newFormat)->tabs, format->tabs, sizeof(REAL) * format->tabcount); @@ -388,10 +381,10 @@ GpStatus WINGDIPAPI GdipCloneStringFormat(GDIPCONST GpStringFormat *format, GpSt (*newFormat)->tabs = NULL;
if(format->range_count > 0){ - (*newFormat)->character_ranges = heap_alloc_zero(sizeof(CharacterRange) * format->range_count); + (*newFormat)->character_ranges = malloc(sizeof(CharacterRange) * format->range_count); if(!(*newFormat)->character_ranges){ - heap_free((*newFormat)->tabs); - heap_free(*newFormat); + free((*newFormat)->tabs); + free(*newFormat); return OutOfMemory; } memcpy((*newFormat)->character_ranges, format->character_ranges,
Hi,
It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated.
The tests also ran into some preexisting test failures. If you know how to fix them that would be helpful. See the TestBot job for the details:
The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=140495
Your paranoid android.
=== debian11b (64 bit WoW report) ===
Report validation errors: mfmediaengine:mfmediaengine crashed (80000101)
On Wed Nov 29 06:54:13 2023 +0000, Esme Povirk wrote:
We have some uses of `GdipAlloc` in `metafile_deserialize_path` that I think are wrong (GdipFree isn't used to free those fields) and need to be fixed first.
I see the problem and I've fixed it in v3. Thanks!
Esme Povirk (@madewokherd) commented about dlls/gdiplus/graphics.c:
/* free everything except root node and header */ delete_element(®ion->node); memcpy(region, clip, sizeof(GpRegion));
- heap_free(clip);
- GdipFree(clip);
Why are GpRegion's changed to Gdip allocation functions while other things are changed to CRT?