From 97931784e7c893f1bdee787f771f4ab074ff9451 Mon Sep 17 00:00:00 2001 From: Jeffrey Pfau Date: Thu, 27 Nov 2014 11:18:22 -0800 Subject: [PATCH] GBA: Do not put decoded image on the stack --- src/gba/gba-serialize.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/gba/gba-serialize.c b/src/gba/gba-serialize.c index 8cfdf1df6..32a49ec56 100644 --- a/src/gba/gba-serialize.c +++ b/src/gba/gba-serialize.c @@ -153,15 +153,17 @@ static bool _loadPNGState(struct GBA* gba, struct VFile* vf) { PNGReadClose(png, info, end); return false; } - uint32_t pixels[VIDEO_HORIZONTAL_PIXELS * VIDEO_VERTICAL_PIXELS * 4]; + uint32_t* pixels = malloc(VIDEO_HORIZONTAL_PIXELS * VIDEO_VERTICAL_PIXELS * 4); PNGInstallChunkHandler(png, gba, _loadPNGChunkHandler, "gbAs"); PNGReadHeader(png, info); - PNGReadPixels(png, info, &pixels, VIDEO_HORIZONTAL_PIXELS, VIDEO_VERTICAL_PIXELS, VIDEO_HORIZONTAL_PIXELS); + PNGReadPixels(png, info, pixels, VIDEO_HORIZONTAL_PIXELS, VIDEO_VERTICAL_PIXELS, VIDEO_HORIZONTAL_PIXELS); PNGReadFooter(png, end); PNGReadClose(png, info, end); gba->video.renderer->putPixels(gba->video.renderer, VIDEO_HORIZONTAL_PIXELS, pixels); GBASyncPostFrame(gba->sync); + + free(pixels); return true; } #endif