From 6da99d4a6c88c0c97671602fcd6354b932724d37 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Wed, 11 May 2022 08:40:17 -0700 Subject: [PATCH] Don't use SDL_SIMDFree() if the pixels haven't been allocated with SDL_SIMDAlloc() --- src/video/SDL_RLEaccel.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/video/SDL_RLEaccel.c b/src/video/SDL_RLEaccel.c index e8b05ec9b..b67b765e9 100644 --- a/src/video/SDL_RLEaccel.c +++ b/src/video/SDL_RLEaccel.c @@ -1218,9 +1218,13 @@ RLEAlphaSurface(SDL_Surface * surface) /* Now that we have it encoded, release the original pixels */ if (!(surface->flags & SDL_PREALLOC)) { - SDL_SIMDFree(surface->pixels); + if (surface->flags & SDL_SIMD_ALIGNED) { + SDL_SIMDFree(surface->pixels); + surface->flags &= ~SDL_SIMD_ALIGNED; + } else { + SDL_free(surface->pixels); + } surface->pixels = NULL; - surface->flags &= ~SDL_SIMD_ALIGNED; } /* reallocate the buffer to release unused memory */ @@ -1382,9 +1386,13 @@ RLEColorkeySurface(SDL_Surface * surface) /* Now that we have it encoded, release the original pixels */ if (!(surface->flags & SDL_PREALLOC)) { - SDL_SIMDFree(surface->pixels); + if (surface->flags & SDL_SIMD_ALIGNED) { + SDL_SIMDFree(surface->pixels); + surface->flags &= ~SDL_SIMD_ALIGNED; + } else { + SDL_free(surface->pixels); + } surface->pixels = NULL; - surface->flags &= ~SDL_SIMD_ALIGNED; } /* reallocate the buffer to release unused memory */