Update of bug #21151 (project freeciv):

         Planned Release:                         => 2.4.1,2.5.0,2.6.0      


Follow-up Comment #6:

I think I've got it.

The options dialog calls get_tileset_list() to get the list of tilesets. The
first time it's called (which is not until the option dialog is opened for the
first time), it repeatedly calls tileset_read_toplevel() and tileset_free() on
a local struct tileset.

tileset_free() itself calls tileset_player_free(), but on the *global* tileset
rather than the local t. That's clearly a bug, and fixing it fixes the
assertion-failures-and-black-background symptom for me.

However, I'm generally uneasy about enumerating tilesets through
tileset_read_toplevel() -- it's documented as having side-effects, and whether
or not those comments are correct, it certainly calls
set_city_names_font_sizes() which has global side-effects. Dunno whether
that's best considered a bug in tileset_read_toplevel().

(I don't know if any of this has any bearing on the crash originally reported.
I haven't spotted a way this fault can cause badness like a NULL pointer


Reply to this item at:


  Message sent via/by Gna!

Freeciv-dev mailing list

Reply via email to