Skip to content

Commit

Permalink
Fixed bug 3852 - SDL_FreeSurface deallocates surface->map even if the…
Browse files Browse the repository at this point in the history
… surface is not yet freed

Evgeny Kapun

Commit 490bb5b49f11 [1], which was a fix for bug #3790, introduced a new bug: now, calling SDL_FreeSurface(surface) deallocates surface->map even if there are other references to the surface. This is bad, because some functions (such as SDL_ConvertSurface) assume that surface->map is not NULL.
  • Loading branch information
slouken committed Sep 29, 2017
1 parent bd5c984 commit aad58c6
Showing 1 changed file with 2 additions and 4 deletions.
6 changes: 2 additions & 4 deletions src/video/SDL_surface.c
Expand Up @@ -1198,10 +1198,8 @@ SDL_FreeSurface(SDL_Surface * surface)
if (surface->flags & SDL_DONTFREE) {
return;
}
if (surface->map != NULL) {
SDL_FreeBlitMap(surface->map);
surface->map = NULL;
}
SDL_InvalidateMap(surface->map);

if (--surface->refcount > 0) {
return;
}
Expand Down

0 comments on commit aad58c6

Please sign in to comment.