python-tcod icon indicating copy to clipboard operation
python-tcod copied to clipboard

SDL_DestroyTexture called with invalid textures

Open HexDecimal opened this issue 1 year ago • 0 comments

Enabling SDL logging allowed me to track down this error.

https://github.com/libtcod/python-tcod/blob/49ebc65ddf0fb0292f667dca9d43b7d5fe1ca7bd/tcod/sdl/render.py#L316

This line creates a texture and takes ownership, but SDL will sometimes destroy the texture owned by this object, causing SDL_DestroyTexture to fail later and sometimes crash the program.

This issue can crash the samples if you restart the renderer during that program.

I'm noting this now so that I don't forget to fix this. I'll probably have the renderer track its textures with weak references and release ownership of its them when the renderer itself is deleted.

HexDecimal avatar Jun 03 '23 14:06 HexDecimal