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
dereference.)

    _______________________________________________________

Reply to this item at:

  <http://gna.org/bugs/?21151>

_______________________________________________
  Message sent via/by Gna!
  http://gna.org/


_______________________________________________
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev

Reply via email to