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: Tue, 18 Dec 2007 08:14:52 +0100

On Tue, Dec 18, 2007 at 09:20:19AM +0800, zou lunkai wrote:

> > 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.
> 
> I understand, then the assumption is not correct.   And if we insist
> this assumption,  always setUnloaded in ::Destroy() would be a
> solution, but it's not an assumption any more.

The assumption is about the gnash code, not any expected behaviour.
It's that kind of assumption that should help people hacking Gnash w/out
breaking things :)

> "make destroy() set _unloaded" might work practically,  let's just
> consider the interface for a while...

Ok, one thing is that ::unload() does more then just set the flag.
In particular, it releases some memory (everything needed for rendering,
which is expected not to happen anyore for an unloaded character).

It also does something which you may not want it to: queue onUnload
event handlers. 

isUnloaded() semantic is: is this character on stage or off-stage ?

--strk;




reply via email to

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