gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gnash-commit] gnash ChangeLog server/character.cpp


From: strk
Subject: Re: [Gnash-commit] gnash ChangeLog server/character.cpp
Date: Mon, 17 Dec 2007 18:52:29 +0100

On Mon, Dec 17, 2007 at 07:41:43AM +0000, Zou Lunkai wrote:
> CVSROOT:      /sources/gnash
> Module name:  gnash
> Changes by:   Zou Lunkai <zoulunkai>  07/12/17 07:41:43
> 
> Modified files:
>       .              : ChangeLog 
>       server         : character.cpp 
> 
> Log message:
>       * server/character.cpp: remove the assertion in charcter::destroy(), 
> it's not
>         correct as tests confirmed.

Zou, the assertion is there to sustain assumptions we make in the code.
For example, void movie_root::cleanupUnloadedListeners(CharacterList& ll)
uses isUnloaded() to decide wheter or not to drop references to characters,
as movie_root::cleanupDisplayList() does with _liveChars.

If we allow a character to return true from isDestroyed() w/out returning
true from isUnloaded() we'll keep alive a lot of stuff.

Planarity big might be one such case (https://savannah.gnu.org/bugs/?21782)
or others... 

In any case, the state of a character can not go to destroyed w/out being
first unloaded. call both unload() and then destroy() if needs be, or
make destroy() set _unloaded.

--strk;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]