On Thu, Oct 04, 2007 at 06:48:45PM +0800, zou lunkai wrote:
> > +sr60.removeMovieClip();
> 
> > +check_equals(sr60.getDepth(), -32829);    ---->[1]
> 
> > +sr59.removeMovieClip();
> 
> > +xcheck_equals(sr59.getDepth(), -32828);  ---->[2]
> 
> If Gnash passes on [1], why should it fail on [2]?

Because for gnash sr60 and sr59 both point to the same instance.
They both have the same target, the one at lower depth is found
first.

> we are still using pointers for soft references, right?  what's the
> result of sr59.getDepth() with Gnash(just interested, I cann't verify
> it myself at the moment)?

It's -32829.. same as sr60.
Gnash goes looking for a rebind when the sprite isUnloaded().
Now changing it to check for isDestroyed() instead, which should
fix this.

IMPORTANT NOTE:
We need a test for opcode guarding to check if Unloaded and Removed
makes a difference there. If the removed character has an onUnload event
handler, is the remaining of actions after it's removal from stage still
discarded ?

--strk;


_______________________________________________
Gnash-commit mailing list
Gnash-commit@gnu.org
http://lists.gnu.org/mailman/listinfo/gnash-commit

Reply via email to