Просмотр исходного кода

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.

Sam Lantinga 9 лет назад
Родитель
Сommit
3df77ced1e
1 измененных файлов с 11 добавлено и 25 удалено
  1. 11 25
      src/render/SDL_render.c

+ 11 - 25
src/render/SDL_render.c

@@ -1894,24 +1894,6 @@ SDL_RenderPresent(SDL_Renderer * renderer)
     renderer->RenderPresent(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)
-{
-    SDL_Renderer *renderer = texture->renderer;
-    if (texture->native) {
-        SDL_DestroyTexture(texture->native);
-    }
-    if (texture->yuv) {
-        SDL_SW_DestroyYUVTexture(texture->yuv);
-    }
-    SDL_free(texture->pixels);
-
-    renderer->DestroyTexture(renderer, texture);
-    SDL_free(texture);
-}
-
 void
 void
 SDL_DestroyTexture(SDL_Texture * texture)
 SDL_DestroyTexture(SDL_Texture * texture)
 {
 {
@@ -1924,7 +1906,7 @@ SDL_DestroyTexture(SDL_Texture * texture)
         SDL_SetRenderTarget(renderer, NULL);
         SDL_SetRenderTarget(renderer, NULL);
     }
     }
 
 
-    texture->magic = NULL;  /* just in case, but we're about to free this... */
+    texture->magic = NULL;
 
 
     if (texture->next) {
     if (texture->next) {
         texture->next->prev = texture->prev;
         texture->next->prev = texture->prev;
@@ -1935,22 +1917,26 @@ SDL_DestroyTexture(SDL_Texture * texture)
         renderer->textures = texture->next;
         renderer->textures = texture->next;
     }
     }
 
 
-    SDL_DestroyTextureInternal(texture);
+    if (texture->native) {
+        SDL_DestroyTexture(texture->native);
+    }
+    if (texture->yuv) {
+        SDL_SW_DestroyYUVTexture(texture->yuv);
+    }
+    SDL_free(texture->pixels);
+
+    renderer->DestroyTexture(renderer, texture);
+    SDL_free(texture);
 }
 }
 
 
 void
 void
 SDL_DestroyRenderer(SDL_Renderer * renderer)
 SDL_DestroyRenderer(SDL_Renderer * renderer)
 {
 {
-    SDL_Texture *texture = NULL;
-    SDL_Texture *nexttexture = NULL;
-
     CHECK_RENDERER_MAGIC(renderer, );
     CHECK_RENDERER_MAGIC(renderer, );
 
 
     SDL_DelEventWatch(SDL_RendererEventWatch, renderer);
     SDL_DelEventWatch(SDL_RendererEventWatch, renderer);
 
 
     /* Free existing textures for this renderer */
     /* Free existing textures for this renderer */
-    SDL_SetRenderTarget(renderer, NULL);
-
     while (renderer->textures) {
     while (renderer->textures) {
         SDL_DestroyTexture(renderer->textures);
         SDL_DestroyTexture(renderer->textures);
     }
     }