Re: [AD] changes in CVS

[ Thread Index | Date Index | More lists.liballeg.org/allegro-developers Archives ]


Michael Bukin <M.A.Bukin@xxxxxxxxxx> writes:

> These crashes are due to dialog sliding code.  It can do init_dialog
> for two dialogs and then shutdown_dialog the one which was initialized
> earlier.  When it tries to shutdown the second dialog, it restores
> active_player and active_dialog from dialog->previous field which
> points to the dialog destroyed earlier.  Then it tries to broadcast
> MSG_IDLE to active_dialog and gets SIGSEGV.
> 
> I don't know what to do about it.  It seems to be a design flaw.

I removed 'previous' field from DIALOG_PLAYER struct and added list of
active (initialized) dialog players.  New active dialog player is
obtained from this list when some dialog is shutdown.

I'm not sure, but perhaps we should sort list of active dialog players
in update_dialog, then next active dialog will be the last dialog
which was updated.

I've applied it to CVS (include/allegro.h and src/gui.c).

-- 
Michael Bukin



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/