Browse Source

direct3d: don't dereference bogus pointer if current texture was destroyed.

Fixes Bugzilla #4460.
Ryan C. Gordon 5 years ago
parent
commit
4f59d372f8
1 changed files with 5 additions and 0 deletions
  1. 5 0
      src/render/direct3d/SDL_render_d3d.c

+ 5 - 0
src/render/direct3d/SDL_render_d3d.c

@@ -1501,8 +1501,13 @@ D3D_RenderPresent(SDL_Renderer * renderer)
 static void
 D3D_DestroyTexture(SDL_Renderer * renderer, SDL_Texture * texture)
 {
+    D3D_RenderData *renderdata = (D3D_RenderData *) renderer->driverdata;
     D3D_TextureData *data = (D3D_TextureData *) texture->driverdata;
 
+    if (renderdata->drawstate.texture == texture) {
+        renderdata->drawstate.texture = NULL;
+    }
+
     if (!data) {
         return;
     }