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