Just roll back the entire portion of the commit from a8253d439914 which caused bug 3544 until we figure out what the right static analysis fix is.
parent
748f46054f
commit
3df77ced1e
|
@ -1894,12 +1894,29 @@ SDL_RenderPresent(SDL_Renderer * renderer)
|
|||
renderer->RenderPresent(renderer);
|
||||
}
|
||||
|
||||
/* this isn't responsible for removing the deleted texture from the list!
|
||||
(this is to keep static analysis happy in SDL_DestroyRenderer().) */
|
||||
static void
|
||||
SDL_DestroyTextureInternal(SDL_Texture * texture)
|
||||
void
|
||||
SDL_DestroyTexture(SDL_Texture * texture)
|
||||
{
|
||||
SDL_Renderer *renderer = texture->renderer;
|
||||
SDL_Renderer *renderer;
|
||||
|
||||
CHECK_TEXTURE_MAGIC(texture, );
|
||||
|
||||
renderer = texture->renderer;
|
||||
if (texture == renderer->target) {
|
||||
SDL_SetRenderTarget(renderer, NULL);
|
||||
}
|
||||
|
||||
texture->magic = NULL;
|
||||
|
||||
if (texture->next) {
|
||||
texture->next->prev = texture->prev;
|
||||
}
|
||||
if (texture->prev) {
|
||||
texture->prev->next = texture->next;
|
||||
} else {
|
||||
renderer->textures = texture->next;
|
||||
}
|
||||
|
||||
if (texture->native) {
|
||||
SDL_DestroyTexture(texture->native);
|
||||
}
|
||||
|
@ -1912,45 +1929,14 @@ SDL_DestroyTextureInternal(SDL_Texture * texture)
|
|||
SDL_free(texture);
|
||||
}
|
||||
|
||||
void
|
||||
SDL_DestroyTexture(SDL_Texture * texture)
|
||||
{
|
||||
SDL_Renderer *renderer;
|
||||
|
||||
CHECK_TEXTURE_MAGIC(texture, );
|
||||
|
||||
renderer = texture->renderer;
|
||||
if (texture == renderer->target) {
|
||||
SDL_SetRenderTarget(renderer, NULL);
|
||||
}
|
||||
|
||||
texture->magic = NULL; /* just in case, but we're about to free this... */
|
||||
|
||||
if (texture->next) {
|
||||
texture->next->prev = texture->prev;
|
||||
}
|
||||
if (texture->prev) {
|
||||
texture->prev->next = texture->next;
|
||||
} else {
|
||||
renderer->textures = texture->next;
|
||||
}
|
||||
|
||||
SDL_DestroyTextureInternal(texture);
|
||||
}
|
||||
|
||||
void
|
||||
SDL_DestroyRenderer(SDL_Renderer * renderer)
|
||||
{
|
||||
SDL_Texture *texture = NULL;
|
||||
SDL_Texture *nexttexture = NULL;
|
||||
|
||||
CHECK_RENDERER_MAGIC(renderer, );
|
||||
|
||||
SDL_DelEventWatch(SDL_RendererEventWatch, renderer);
|
||||
|
||||
/* Free existing textures for this renderer */
|
||||
SDL_SetRenderTarget(renderer, NULL);
|
||||
|
||||
while (renderer->textures) {
|
||||
SDL_DestroyTexture(renderer->textures);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue