From 4bd117640db9ea01ca624d23c03361f00af12127 Mon Sep 17 00:00:00 2001 From: Mike McCormack Date: Fri, 10 Nov 2006 15:39:52 +0900 Subject: [PATCH] oleaut32: Use HeapAlloc/Free instead of malloc/free. --- dlls/oleaut32/ungif.c | 67 +++++++++++++++++++++++++++---------------- 1 file changed, 43 insertions(+), 24 deletions(-) diff --git a/dlls/oleaut32/ungif.c b/dlls/oleaut32/ungif.c index edd7926206a..cf1d355cc98 100644 --- a/dlls/oleaut32/ungif.c +++ b/dlls/oleaut32/ungif.c @@ -51,6 +51,25 @@ #include #include "ungif.h" +#include +#include "windef.h" +#include "winbase.h" + +static void *ungif_alloc( size_t sz ) +{ + return HeapAlloc( GetProcessHeap(), 0, sz ); +} + +static void *ungif_calloc( size_t num, size_t sz ) +{ + return HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, num*sz ); +} + +static void ungif_free( void *ptr ) +{ + HeapFree( GetProcessHeap(), 0, ptr ); +} + #define LZ_MAX_CODE 4095 /* Biggest code possible in 12 bits. */ #define LZ_BITS 12 @@ -127,14 +146,14 @@ MakeMapObject(int ColorCount, return ((ColorMapObject *) NULL); } - Object = malloc(sizeof(ColorMapObject)); + Object = ungif_alloc(sizeof(ColorMapObject)); if (Object == (ColorMapObject *) NULL) { return ((ColorMapObject *) NULL); } - Object->Colors = (GifColorType *)calloc(ColorCount, sizeof(GifColorType)); + Object->Colors = ungif_calloc(ColorCount, sizeof(GifColorType)); if (Object->Colors == (GifColorType *) NULL) { - return ((ColorMapObject *) NULL); + return NULL; } Object->ColorCount = ColorCount; @@ -154,8 +173,8 @@ static void FreeMapObject(ColorMapObject * Object) { if (Object != NULL) { - free(Object->Colors); - free(Object); + ungif_free(Object->Colors); + ungif_free(Object); /*** FIXME: * When we are willing to break API we need to make this function * FreeMapObject(ColorMapObject **Object) @@ -173,7 +192,7 @@ AddExtensionBlock(SavedImage * New, ExtensionBlock *ep; if (New->ExtensionBlocks == NULL) - New->ExtensionBlocks = malloc(sizeof(ExtensionBlock)); + New->ExtensionBlocks = ungif_alloc(sizeof(ExtensionBlock)); else New->ExtensionBlocks = realloc(New->ExtensionBlocks, sizeof(ExtensionBlock) * @@ -185,7 +204,7 @@ AddExtensionBlock(SavedImage * New, ep = &New->ExtensionBlocks[New->ExtensionBlockCount++]; ep->ByteCount=Len; - ep->Bytes = malloc(ep->ByteCount); + ep->Bytes = ungif_alloc(ep->ByteCount); if (ep->Bytes == NULL) return (GIF_ERROR); @@ -207,8 +226,8 @@ FreeExtension(SavedImage * Image) } for (ep = Image->ExtensionBlocks; ep < (Image->ExtensionBlocks + Image->ExtensionBlockCount); ep++) - free(ep->Bytes); - free(Image->ExtensionBlocks); + ungif_free(ep->Bytes); + ungif_free(Image->ExtensionBlocks); Image->ExtensionBlocks = NULL; } @@ -231,12 +250,12 @@ FreeSavedImages(GifFileType * GifFile) { sp->ImageDesc.ColorMap = NULL; } - free(sp->RasterBits); + ungif_free(sp->RasterBits); if (sp->ExtensionBlocks) FreeExtension(sp); } - free(GifFile->SavedImages); + ungif_free(GifFile->SavedImages); GifFile->SavedImages=NULL; } @@ -374,7 +393,7 @@ DGifGetImageDesc(GifFileType * GifFile) { return GIF_ERROR; } } else { - if ((GifFile->SavedImages = malloc(sizeof(SavedImage))) == NULL) { + if ((GifFile->SavedImages = ungif_alloc(sizeof(SavedImage))) == NULL) { return GIF_ERROR; } } @@ -828,7 +847,7 @@ DGifSlurp(GifFileType * GifFile) { sp = &GifFile->SavedImages[GifFile->ImageCount - 1]; ImageSize = sp->ImageDesc.Width * sp->ImageDesc.Height; - sp->RasterBits = malloc(ImageSize * sizeof(GifPixelType)); + sp->RasterBits = ungif_alloc(ImageSize * sizeof(GifPixelType)); if (sp->RasterBits == NULL) { return GIF_ERROR; } @@ -895,16 +914,16 @@ DGifOpen(void *userData, GifFileType *GifFile; GifFilePrivateType *Private; - GifFile = malloc(sizeof(GifFileType)); + GifFile = ungif_alloc(sizeof(GifFileType)); if (GifFile == NULL) { return NULL; } memset(GifFile, '\0', sizeof(GifFileType)); - Private = malloc(sizeof(GifFilePrivateType)); + Private = ungif_alloc(sizeof(GifFilePrivateType)); if (!Private) { - free(GifFile); + ungif_free(GifFile); return NULL; } @@ -915,8 +934,8 @@ DGifOpen(void *userData, /* Lets see if this is a GIF file: */ if (READ(GifFile, Buf, GIF_STAMP_LEN) != GIF_STAMP_LEN) { - free(Private); - free(GifFile); + ungif_free(Private); + ungif_free(GifFile); return NULL; } @@ -924,14 +943,14 @@ DGifOpen(void *userData, * something more useful with it. */ Buf[GIF_STAMP_LEN] = 0; if (memcmp(GIF_STAMP, Buf, GIF_VERSION_POS) != 0) { - free(Private); - free(GifFile); + ungif_free(Private); + ungif_free(GifFile); return NULL; } if (DGifGetScreenDesc(GifFile) == GIF_ERROR) { - free(Private); - free(GifFile); + ungif_free(Private); + ungif_free(GifFile); return NULL; } @@ -961,7 +980,7 @@ DGifCloseFile(GifFileType * GifFile) { GifFile->SColorMap = NULL; } - free(Private); + ungif_free(Private); Private = NULL; if (GifFile->SavedImages) { @@ -969,7 +988,7 @@ DGifCloseFile(GifFileType * GifFile) { GifFile->SavedImages = NULL; } - free(GifFile); + ungif_free(GifFile); return GIF_OK; }