From 8f178a59ab1ea0262e3ff6dbd31fda8b34c79847 Mon Sep 17 00:00:00 2001 From: Asdow <20314541+Asdow@users.noreply.github.com> Date: Mon, 23 Feb 2026 18:22:23 +0200 Subject: [PATCH] Add filename to error text for pngloader --- sgp/PngLoader.cpp | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/sgp/PngLoader.cpp b/sgp/PngLoader.cpp index 88453b61..86ede2b3 100644 --- a/sgp/PngLoader.cpp +++ b/sgp/PngLoader.cpp @@ -836,8 +836,11 @@ void Load32bppPNGImage(HIMAGE hImage, png::png_bytepp rows, png::png_infop info) hImage->p32BPPData = (UINT32*)MemAlloc(SIZE); if(!hImage->p32BPPData) { + CHAR8 errorText[512]; + sprintf(errorText, "Bad allocation loading image. Filename: %s", hImage->ImageFile); + MemFree(hImage->pETRLEObject); - SGP_THROW(L"bad alloc"); + SGP_THROW(errorText); } memset(hImage->p32BPPData, 0, SIZE); @@ -878,8 +881,11 @@ void Load24bppPNGImage(HIMAGE hImage, png::png_bytepp rows, png::png_infop info) hImage->p16BPPData = (UINT16*)MemAlloc(SIZE); if(!hImage->p16BPPData) { + CHAR8 errorText[512]; + sprintf(errorText, "Bad allocation loading image. Filename: %s", hImage->ImageFile); + MemFree(hImage->pETRLEObject); - SGP_THROW(L"bad alloc"); + SGP_THROW(errorText); } memset(hImage->p16BPPData, 0, SIZE); @@ -899,11 +905,15 @@ void Load24bppPNGImage(HIMAGE hImage, png::png_bytepp rows, png::png_infop info) void LoadPalettedPNGImage(HIMAGE hImage, png::png_bytepp rows, png::png_infop info) { + CHAR8 errorText[512]; UINT32 SIZE = info->height * info->width * sizeof(UINT8); UINT8 *data = (UINT8*)MemAlloc(SIZE); if(!data) { - SGP_THROW(L"bad alloc"); + sprintf(errorText, "Bad allocation loading image. Filename: %s", hImage->ImageFile); + + MemFree(hImage->pETRLEObject); + SGP_THROW(errorText); } memset(data,0,SIZE); for(unsigned int i = 0; i < info->height; ++i) @@ -915,8 +925,10 @@ void LoadPalettedPNGImage(HIMAGE hImage, png::png_bytepp rows, png::png_infop in hImage->pETRLEObject = (ETRLEObject*)MemAlloc(hImage->usNumberOfObjects * sizeof(ETRLEObject)); if(!hImage->pETRLEObject) { + sprintf(errorText, "Bad allocation for ETRLEObject. Filename: %s", hImage->ImageFile); + MemFree(data); - SGP_THROW(L"bad alloc"); + SGP_THROW(errorText); } memset(hImage->pETRLEObject,0, hImage->usNumberOfObjects * sizeof(ETRLEObject)); @@ -931,9 +943,11 @@ void LoadPalettedPNGImage(HIMAGE hImage, png::png_bytepp rows, png::png_infop in hImage->p8BPPData = (UINT8*)MemAlloc( RESIZE ); if(!hImage->p8BPPData) { + sprintf(errorText, "Bad allocation for image pixel data. Filename: %s", hImage->ImageFile); + MemFree(hImage->pETRLEObject); MemFree(data); - SGP_THROW(L"bad alloc"); + SGP_THROW(errorText); } UINT8 *compressed = hImage->p8BPPData; memset(hImage->p8BPPData,0,RESIZE);