Don't use SDL_SIMDFree() if the pixels haven't been allocated with SDL_SIMDAlloc()

This commit is contained in:
Sam Lantinga 2022-05-11 08:40:17 -07:00
parent 2f924020e8
commit 6da99d4a6c

View file

@ -1218,9 +1218,13 @@ RLEAlphaSurface(SDL_Surface * surface)
/* Now that we have it encoded, release the original pixels */ /* Now that we have it encoded, release the original pixels */
if (!(surface->flags & SDL_PREALLOC)) { 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->pixels = NULL;
surface->flags &= ~SDL_SIMD_ALIGNED;
} }
/* reallocate the buffer to release unused memory */ /* 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 */ /* Now that we have it encoded, release the original pixels */
if (!(surface->flags & SDL_PREALLOC)) { 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->pixels = NULL;
surface->flags &= ~SDL_SIMD_ALIGNED;
} }
/* reallocate the buffer to release unused memory */ /* reallocate the buffer to release unused memory */