Fixed bug 3852 - SDL_FreeSurface deallocates surface->map even if the 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.
parent
bd5c984ac0
commit
aad58c622c
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue