From b0a7d81412746fbd6e9a0c642e2908275148610a Mon Sep 17 00:00:00 2001 From: cosmonaut Date: Fri, 22 Jul 2022 21:29:39 -0700 Subject: [PATCH] warning fixes + just give in to stdlib --- include/cram.h | 19 ++------- src/cram.c | 104 +++++++++++++++++++++++------------------------ tools/cli/main.c | 10 ++--- 3 files changed, 60 insertions(+), 73 deletions(-) diff --git a/include/cram.h b/include/cram.h index 644a769..bea077e 100644 --- a/include/cram.h +++ b/include/cram.h @@ -46,19 +46,6 @@ #endif /* _MSC_VER */ -/* TODO: ifndefs here? */ -#define Cram_assert assert -#define Cram_qsort qsort -#define Cram_malloc malloc -#define Cram_realloc realloc -#define Cram_free free -#define Cram_memcpy memcpy -#define Cram_memset memset -#define Cram_strdup strdup -#define Cram_abs abs -#define Cram_min min -#define Cram_max max - #ifdef _WIN32 #define SEPARATOR '\\' #endif @@ -90,7 +77,7 @@ typedef struct Cram_Context Cram_Context; typedef struct Cram_ContextCreateInfo { - const char *name; + char *name; uint32_t maxDimension; int32_t padding; uint8_t trim; @@ -119,8 +106,8 @@ CRAMAPI void Cram_AddFile(Cram_Context *context, const char *path); CRAMAPI int8_t Cram_Pack(Cram_Context *context); -CRAMAPI void Cram_GetPixelData(Cram_Context *context, uint8_t **pPixelData, uint32_t *pWidth, uint32_t *pHeight); -CRAMAPI void Cram_GetMetadata(Cram_Context *context, Cram_ImageData **pImage, uint32_t *pImageCount); +CRAMAPI void Cram_GetPixelData(Cram_Context *context, uint8_t **pPixelData, int32_t *pWidth, int32_t *pHeight); +CRAMAPI void Cram_GetMetadata(Cram_Context *context, Cram_ImageData **pImage, int32_t *pImageCount); CRAMAPI void Cram_Destroy(Cram_Context *context); diff --git a/src/cram.c b/src/cram.c index 140ff77..87cd6cf 100644 --- a/src/cram.c +++ b/src/cram.c @@ -26,10 +26,10 @@ #include "cram.h" -#define STBI_ASSERT Cram_assert -#define STBI_MALLOC Cram_malloc -#define STBI_REALLOC Cram_realloc -#define STBI_FREE Cram_free +#define STBI_ASSERT assert +#define STBI_MALLOC malloc +#define STBI_REALLOC realloc +#define STBI_FREE free #define STBI_ONLY_PNG #define STB_IMAGE_IMPLEMENTATION @@ -68,9 +68,9 @@ struct Cram_Image typedef struct Cram_Internal_Context { - const char *name; - uint32_t width; - uint32_t height; + char *name; + int32_t width; + int32_t height; int32_t padding; uint8_t trim; @@ -78,17 +78,17 @@ typedef struct Cram_Internal_Context uint8_t *pixels; Cram_Image **images; - uint32_t imageCount; - uint32_t imageCapacity; + int32_t imageCount; + int32_t imageCapacity; Cram_ImageData *imageDatas; - uint32_t imageDataCount; + int32_t imageDataCount; } Cram_Internal_Context; typedef struct RectPackContext { - uint32_t width; - uint32_t height; + int32_t width; + int32_t height; Rect *freeRectangles; int32_t freeRectangleCount; @@ -141,12 +141,12 @@ static uint8_t Cram_Internal_IsImageEqual(Cram_Image *a, Cram_Image *b) return 0; } -static inline uint32_t Cram_Internal_GetPixelIndex(uint32_t x, uint32_t y, uint32_t width) +static inline int32_t Cram_Internal_GetPixelIndex(int32_t x, int32_t y, int32_t width) { return x + y * width; } -static uint8_t Cram_Internal_IsRowClear(uint32_t* pixels, uint32_t rowIndex, uint32_t width) +static uint8_t Cram_Internal_IsRowClear(int32_t* pixels, int32_t rowIndex, int32_t width) { int32_t i; @@ -161,7 +161,7 @@ static uint8_t Cram_Internal_IsRowClear(uint32_t* pixels, uint32_t rowIndex, uin return 1; } -static uint8_t Cram_Internal_IsColumnClear(uint32_t* pixels, uint32_t columnIndex, uint32_t width, uint32_t height) +static uint8_t Cram_Internal_IsColumnClear(int32_t* pixels, int32_t columnIndex, int32_t width, int32_t height) { int32_t i; @@ -210,13 +210,13 @@ static int8_t Cram_Internal_CopyPixels( RectPackContext* Cram_Internal_InitRectPacker(uint32_t width, uint32_t height) { - RectPackContext *context = Cram_malloc(sizeof(RectPackContext)); + RectPackContext *context = malloc(sizeof(RectPackContext)); context->width = width; context->height = height; context->freeRectangleCapacity = INITIAL_FREE_RECTANGLE_CAPACITY; - context->freeRectangles = Cram_malloc(sizeof(Rect) * context->freeRectangleCapacity); + context->freeRectangles = malloc(sizeof(Rect) * context->freeRectangleCapacity); context->freeRectangles[0].x = 0; context->freeRectangles[0].y = 0; @@ -225,7 +225,7 @@ RectPackContext* Cram_Internal_InitRectPacker(uint32_t width, uint32_t height) context->freeRectangleCount = 1; context->newFreeRectangleCapacity = INITIAL_FREE_RECTANGLE_CAPACITY; - context->newFreeRectangles = Cram_malloc(sizeof(Rect) * context->freeRectangleCapacity); + context->newFreeRectangles = malloc(sizeof(Rect) * context->freeRectangleCapacity); context->newFreeRectangleCount = 0; return context; @@ -254,7 +254,7 @@ void Cram_Internal_Score( if (freeRect->w >= width && freeRect->h >= height) { areaFit = freeRect->w * freeRect->h - width * height; - shortestSide = Cram_min(freeRect->w - width, freeRect->h - height); + shortestSide = min(freeRect->w - width, freeRect->h - height); if (areaFit < scoreInfo->score || (areaFit == scoreInfo->score && shortestSide < scoreInfo->secondaryScore)) { @@ -295,8 +295,8 @@ void Cram_Internal_PruneRects(RectPackContext* context) if (context->freeRectangleCapacity < context->freeRectangleCount + context->newFreeRectangleCount) { - context->freeRectangleCapacity = Cram_max(context->freeRectangleCapacity * 2, context->freeRectangleCount + context->newFreeRectangleCount); - context->freeRectangles = Cram_realloc(context->freeRectangles, sizeof(Rect) * context->freeRectangleCapacity); + context->freeRectangleCapacity = max(context->freeRectangleCapacity * 2, context->freeRectangleCount + context->newFreeRectangleCount); + context->freeRectangles = realloc(context->freeRectangles, sizeof(Rect) * context->freeRectangleCapacity); } for (i = 0; i < context->newFreeRectangleCount; i += 1) @@ -329,7 +329,7 @@ static inline void Cram_Internal_AddNewFreeRect(RectPackContext *context, Rect r if (context->newFreeRectangleCount == context->newFreeRectangleCapacity) { context->newFreeRectangleCapacity *= 2; - context->newFreeRectangles = Cram_realloc(context->newFreeRectangles, sizeof(Rect) * context->newFreeRectangleCapacity); + context->newFreeRectangles = realloc(context->newFreeRectangles, sizeof(Rect) * context->newFreeRectangleCapacity); } context->newFreeRectangles[context->newFreeRectangleCount] = rect; @@ -416,9 +416,9 @@ void Cram_Internal_PlaceRect(RectPackContext *context, Rect *rect) } /* Given rects with width and height, modifies rects with packed x and y positions. */ -int8_t Cram_Internal_PackRects(RectPackContext *context, Rect *rects, uint32_t numRects) +int8_t Cram_Internal_PackRects(RectPackContext *context, Rect *rects, int32_t numRects) { - Rect **rectsToPack = Cram_malloc(sizeof(Rect*) * numRects); + Rect **rectsToPack = malloc(sizeof(Rect*) * numRects); int32_t rectsToPackCount = numRects; Rect *rectPtr; int32_t bestScore = INT32_MAX; @@ -468,7 +468,7 @@ int8_t Cram_Internal_PackRects(RectPackContext *context, Rect *rects, uint32_t n rectsToPackCount -= 1; } - Cram_free(rectsToPack); + free(rectsToPack); return 0; } @@ -481,9 +481,9 @@ uint32_t Cram_LinkedVersion(void) Cram_Context* Cram_Init(Cram_ContextCreateInfo *createInfo) { - Cram_Internal_Context *context = Cram_malloc(sizeof(Cram_Internal_Context)); + Cram_Internal_Context *context = malloc(sizeof(Cram_Internal_Context)); - context->name = Cram_strdup(createInfo->name); + context->name = strdup(createInfo->name); context->width = createInfo->maxDimension; context->height = createInfo->maxDimension; @@ -491,7 +491,7 @@ Cram_Context* Cram_Init(Cram_ContextCreateInfo *createInfo) context->padding = createInfo->padding; context->trim = createInfo->trim; - context->images = Cram_malloc(INITIAL_DATA_CAPACITY * sizeof(Cram_Image*)); + context->images = malloc(INITIAL_DATA_CAPACITY * sizeof(Cram_Image*)); context->imageCapacity = INITIAL_DATA_CAPACITY; context->imageCount = 0; @@ -506,7 +506,7 @@ static char* Cram_Internal_GetImageName(const char *path) { char *lastSeparator = strrchr(path, SEPARATOR) + 1; size_t returnBytes = strlen(lastSeparator) + 1; - char *name = Cram_malloc(returnBytes); + char *name = malloc(returnBytes); int32_t i; for (i = 0; i < returnBytes; i += 1) @@ -529,10 +529,10 @@ void Cram_AddFile(Cram_Context *context, const char *path) if (internalContext->imageCapacity == internalContext->imageCount) { internalContext->imageCapacity *= 2; - internalContext->images = Cram_realloc(internalContext->images, internalContext->imageCapacity * sizeof(Cram_Image*)); + internalContext->images = realloc(internalContext->images, internalContext->imageCapacity * sizeof(Cram_Image*)); } - image = Cram_malloc(sizeof(Cram_Image)); + image = malloc(sizeof(Cram_Image)); image->name = Cram_Internal_GetImageName(path); @@ -603,7 +603,7 @@ void Cram_AddFile(Cram_Context *context, const char *path) } /* copy and free source pixels */ - image->pixels = Cram_malloc(image->trimmedRect.w * image->trimmedRect.h * 4); + image->pixels = malloc(image->trimmedRect.w * image->trimmedRect.h * 4); Rect dstRect; dstRect.x = 0; @@ -626,7 +626,7 @@ void Cram_AddFile(Cram_Context *context, const char *path) { /* this is duplicate data! */ image->duplicateOf = internalContext->images[i]; - Cram_free(image->pixels); + free(image->pixels); image->pixels = NULL; break; } @@ -647,12 +647,12 @@ int8_t Cram_Pack(Cram_Context *context) Rect *packerRect; Rect dstRect, srcRect; Cram_Image *image; - uint32_t maxWidth = 0; - uint32_t maxHeight = 0; + int32_t maxWidth = 0; + int32_t maxHeight = 0; int32_t i; internalContext->imageDataCount = internalContext->imageCount; - internalContext->imageDatas = Cram_realloc(internalContext->imageDatas, sizeof(Cram_ImageData) * internalContext->imageDataCount); + internalContext->imageDatas = realloc(internalContext->imageDatas, sizeof(Cram_ImageData) * internalContext->imageDataCount); rectPackContext = Cram_Internal_InitRectPacker(internalContext->width, internalContext->height); @@ -664,7 +664,7 @@ int8_t Cram_Pack(Cram_Context *context) } } - packerRects = Cram_malloc(sizeof(Rect) * numRects); + packerRects = malloc(sizeof(Rect) * numRects); numRects = 0; for (i = 0; i < internalContext->imageCount; i += 1) @@ -697,8 +697,8 @@ int8_t Cram_Pack(Cram_Context *context) internalContext->images[i]->packedRect.w = internalContext->images[i]->trimmedRect.w; internalContext->images[i]->packedRect.h = internalContext->images[i]->trimmedRect.h; - maxWidth = Cram_max(maxWidth, packerRect->x + packerRect->w); - maxHeight = Cram_max(maxHeight, packerRect->y + packerRect->h); + maxWidth = max(maxWidth, packerRect->x + packerRect->w); + maxHeight = max(maxHeight, packerRect->y + packerRect->h); numRects += 1; } @@ -707,8 +707,8 @@ int8_t Cram_Pack(Cram_Context *context) internalContext->width = Cram_Internal_NextPowerOfTwo(maxWidth); internalContext->height = Cram_Internal_NextPowerOfTwo(maxHeight); - internalContext->pixels = Cram_realloc(internalContext->pixels, internalContext->width * internalContext->height * 4); - Cram_memset(internalContext->pixels, 0, internalContext->width * internalContext->height * 4); + internalContext->pixels = realloc(internalContext->pixels, internalContext->width * internalContext->height * 4); + memset(internalContext->pixels, 0, internalContext->width * internalContext->height * 4); for (i = 0; i < internalContext->imageCount; i += 1) { @@ -756,12 +756,12 @@ int8_t Cram_Pack(Cram_Context *context) internalContext->imageDatas[i].name = strdup(internalContext->images[i]->name); } - Cram_free(packerRects); + free(packerRects); return 0; } -void Cram_GetPixelData(Cram_Context *context, uint8_t **pPixels, uint32_t *pWidth, uint32_t *pHeight) +void Cram_GetPixelData(Cram_Context *context, uint8_t **pPixels, int32_t *pWidth, int32_t *pHeight) { Cram_Internal_Context *internalContext = (Cram_Internal_Context*) context; *pPixels = internalContext->pixels; @@ -769,7 +769,7 @@ void Cram_GetPixelData(Cram_Context *context, uint8_t **pPixels, uint32_t *pWidt *pHeight = internalContext->height; } -void Cram_GetMetadata(Cram_Context *context, Cram_ImageData **pImage, uint32_t *pImageCount) +void Cram_GetMetadata(Cram_Context *context, Cram_ImageData **pImage, int32_t *pImageCount) { Cram_Internal_Context *internalContext = (Cram_Internal_Context*) context; @@ -784,22 +784,22 @@ void Cram_Destroy(Cram_Context *context) if (internalContext->pixels != NULL) { - Cram_free(internalContext->pixels); + free(internalContext->pixels); } for (i = 0; i < internalContext->imageCount; i += 1) { if (!internalContext->images[i]->duplicateOf) { - Cram_free(internalContext->images[i]->pixels); + free(internalContext->images[i]->pixels); } - Cram_free(internalContext->images[i]->name); - Cram_free(internalContext->images[i]); + free(internalContext->images[i]->name); + free(internalContext->images[i]); } - Cram_free(internalContext->name); - Cram_free(internalContext->images); - Cram_free(internalContext->imageDatas); - Cram_free(internalContext); + free(internalContext->name); + free(internalContext->images); + free(internalContext->imageDatas); + free(internalContext); } diff --git a/tools/cli/main.c b/tools/cli/main.c index d83d83b..00ca8c7 100644 --- a/tools/cli/main.c +++ b/tools/cli/main.c @@ -120,7 +120,7 @@ int main(int argc, char *argv[]) char *metadataFilename; JsonBuilder *jsonBuilder; Cram_ImageData *imageDatas; - uint32_t imageCount; + int32_t imageCount; int32_t i; /* Set defaults */ @@ -217,7 +217,7 @@ int main(int argc, char *argv[]) /* output pixel data */ Cram_GetPixelData(context, &pixelData, &width, &height); - imageOutputFilename = Cram_malloc(strlen(createInfo.name) + 5); + imageOutputFilename = malloc(strlen(createInfo.name) + 5); strcpy(imageOutputFilename, createInfo.name); strcat(imageOutputFilename, ".png"); @@ -256,7 +256,7 @@ int main(int argc, char *argv[]) JsonBuilder_FinishArrayProperty(jsonBuilder); JsonBuilder_Finish(jsonBuilder); - metadataFilename = Cram_malloc(strlen(createInfo.name) + 6); + metadataFilename = malloc(strlen(createInfo.name) + 6); strcpy(metadataFilename, createInfo.name); strcat(metadataFilename, ".json"); @@ -272,8 +272,8 @@ int main(int argc, char *argv[]) JsonBuilder_Destroy(jsonBuilder); fclose(jsonOutput); - Cram_free(imageOutputFilename); - Cram_free(metadataFilename); + free(imageOutputFilename); + free(metadataFilename); Cram_Destroy(context); return 0;