> +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]? 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)? --zou On 10/4/07, Sandro Santilli <[EMAIL PROTECTED]> wrote: > CVSROOT: /sources/gnash > Module name: gnash > Changes by: Sandro Santilli <strk> 07/10/04 08:18:13 > > Modified files: > . : ChangeLog > testsuite/actionscript.all: MovieClip.as > > Log message: > * testsuite/actionscript.all/MovieClip.as: add test showing > that it's NOT *unload* of sprite triggering soft-references > rebinding but rather *destroy* of them ! > > CVSWeb URLs: > http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.4517&r2=1.4518 > http://cvs.savannah.gnu.org/viewcvs/gnash/testsuite/actionscript.all/MovieClip.as?cvsroot=gnash&r1=1.94&r2=1.95 > > Patches: > Index: ChangeLog > =================================================================== > RCS file: /sources/gnash/gnash/ChangeLog,v > retrieving revision 1.4517 > retrieving revision 1.4518 > diff -u -b -r1.4517 -r1.4518 > --- ChangeLog 3 Oct 2007 21:43:04 -0000 1.4517 > +++ ChangeLog 4 Oct 2007 08:18:11 -0000 1.4518 > @@ -1,3 +1,9 @@ > +2007-10-04 Sandro Santilli <[EMAIL PROTECTED]> > + > + * testsuite/actionscript.all/MovieClip.as: add test showing > + that it's NOT *unload* of sprite triggering soft-references > + rebinding but rather *destroy* of them ! > + > 2007-10-03 Tomas Groth Christensen <[EMAIL PROTECTED]> > > * libbase/Makefile.am: Added BitsReader.{h,cpp} > > Index: testsuite/actionscript.all/MovieClip.as > =================================================================== > RCS file: /sources/gnash/gnash/testsuite/actionscript.all/MovieClip.as,v > retrieving revision 1.94 > retrieving revision 1.95 > diff -u -b -r1.94 -r1.95 > --- testsuite/actionscript.all/MovieClip.as 3 Oct 2007 13:01:22 -0000 > 1.94 > +++ testsuite/actionscript.all/MovieClip.as 4 Oct 2007 08:18:12 -0000 > 1.95 > @@ -20,7 +20,7 @@ > // compile this test case with Ming makeswf, and then > // execute it like this gnash -1 -r 0 -v out.swf > > -rcsid="$Id: MovieClip.as,v 1.94 2007/10/03 13:01:22 strk Exp $"; > +rcsid="$Id: MovieClip.as,v 1.95 2007/10/04 08:18:12 strk Exp $"; > > #include "check.as" > > @@ -542,7 +542,7 @@ > // > // 1. Original target of a re-bound target isn't used for further > // rebounding. > -// 2. No rebind is attempted till the original sprite is unloaded. > +// 2. No rebind is attempted till the original sprite is destroyed (not > simply unloaded!) > // 3. After original bounded sprite is unloaded, rebinding is *always* > // attempted. > // > @@ -635,6 +635,40 @@ > check_equals(sr63_bis.member, 'hardref4_64'); > check_equals(sr64.member, 'hardref4_64'); > > +// Now check that unloaded-but-not-destroyed sprite > +// do NOT trigger rebinding > +sr59 = createEmptyMovieClip("hardref5", 59); > +sr59.member = "[EMAIL PROTECTED]"; > +sr59.onUnload = function() {}; > +sr60 = createEmptyMovieClip("hardref5", 60); > +sr60.member = "[EMAIL PROTECTED]"; > +sr60.onUnload = function() {}; > +check_equals(sr59.getDepth(), 59); > +check_equals(sr60.getDepth(), 60); > +check_equals(sr59._target, "/hardref5"); > +check_equals(sr60._target, "/hardref5"); > +sr60.removeMovieClip(); > +check_equals(sr59.getDepth(), 59); > +check_equals(sr60.getDepth(), -32829); > +check_equals(sr59._target, "/hardref5"); > +check_equals(sr60._target, "/hardref5"); > +sr59.removeMovieClip(); > +// sr59, despite the fact [EMAIL PROTECTED] was unloaded, still > +// points to the original sprite. This means no rebind is > +// attempted, otherwise [EMAIL PROTECTED] will be found first > +// being at a lower depth > +check_equals(hardref5.getDepth(), -32829); > +check_equals(hardref5._target, "/hardref5"); > +check_equals(hardref5.member, "[EMAIL PROTECTED]"); > +// Gnash fails because it's "unload" event triggering rebinding > +// rather then "destroy" event (unsupported in Gnash). > +xcheck_equals(sr59.getDepth(), -32828); > +xcheck_equals(sr59.member, "[EMAIL PROTECTED]"); > +check_equals(sr59._target, "/hardref5"); > +check_equals(sr60.getDepth(), -32829); > +check_equals(sr60._target, "/hardref5"); > +check_equals(sr60.member, "[EMAIL PROTECTED]"); > + > #endif // OUTPUT_VERSION >= 6 > > //---------------------------------------------- > > > _______________________________________________ > Gnash-commit mailing list > Gnash-commit@gnu.org > http://lists.gnu.org/mailman/listinfo/gnash-commit > _______________________________________________ Gnash-commit mailing list Gnash-commit@gnu.org http://lists.gnu.org/mailman/listinfo/gnash-commit