CVSROOT: /sources/gnash Module name: gnash Changes by: Sandro Santilli <strk> 07/09/18 09:49:24
Modified files: . : ChangeLog server : sprite_instance.cpp testsuite/misc-ming.all: init_action_test.c testsuite/misc-swfc.all: movieclip_destruction_test1.sc Log message: * server/sprite_instance.cpp (execute_frame_tags): execute init actions *after* DLIST tags. * testsuite/misc-swfc.all/movieclip_destruction_test1.sc: No more failures in this case. * testsuite/misc-ming.all/init_action_test.c: a single failure was introduced by this comit, for known reason. We decided to accept the failure and take care of it later. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.4339&r2=1.4340 http://cvs.savannah.gnu.org/viewcvs/gnash/server/sprite_instance.cpp?cvsroot=gnash&r1=1.343&r2=1.344 http://cvs.savannah.gnu.org/viewcvs/gnash/testsuite/misc-ming.all/init_action_test.c?cvsroot=gnash&r1=1.3&r2=1.4 http://cvs.savannah.gnu.org/viewcvs/gnash/testsuite/misc-swfc.all/movieclip_destruction_test1.sc?cvsroot=gnash&r1=1.16&r2=1.17 Patches: Index: ChangeLog =================================================================== RCS file: /sources/gnash/gnash/ChangeLog,v retrieving revision 1.4339 retrieving revision 1.4340 diff -u -b -r1.4339 -r1.4340 --- ChangeLog 18 Sep 2007 07:35:01 -0000 1.4339 +++ ChangeLog 18 Sep 2007 09:49:23 -0000 1.4340 @@ -1,5 +1,15 @@ 2007-09-18 Sandro Santilli <[EMAIL PROTECTED]> + * server/sprite_instance.cpp (execute_frame_tags): execute + init actions *after* DLIST tags. + * testsuite/misc-swfc.all/movieclip_destruction_test1.sc: + No more failures in this case. + * testsuite/misc-ming.all/init_action_test.c: a single + failure was introduced by this comit, for known reason. + We decided to accept the failure and take care of it later. + +2007-09-18 Sandro Santilli <[EMAIL PROTECTED]> + * server/array.{cpp,h}: Implement enumerateNonProperties(). Still not 100% correct but fixes youtube controls positioning (bug #20469). Index: server/sprite_instance.cpp =================================================================== RCS file: /sources/gnash/gnash/server/sprite_instance.cpp,v retrieving revision 1.343 retrieving revision 1.344 diff -u -b -r1.343 -r1.344 --- server/sprite_instance.cpp 17 Sep 2007 12:21:47 -0000 1.343 +++ server/sprite_instance.cpp 18 Sep 2007 09:49:23 -0000 1.344 @@ -2409,6 +2409,26 @@ assert(frame < m_def->get_frame_count()); + const PlayList* playlist = m_def->getPlaylist(frame); + if ( playlist ) + { + IF_VERBOSE_ACTION( + // Use 1-based frame numbers + log_action(_("Executing " SIZET_FMT " tags in frame " + SIZET_FMT "/" SIZET_FMT " of sprite %s"), + playlist->size(), frame+1, get_frame_count(), + getTargetPath().c_str()); + ); + + for (PlayList::const_iterator it=playlist->begin(), itEnd=playlist->end(); + it != itEnd; ++it) + { + execute_tag* tag = *it; + if ( typeflags & TAG_DLIST ) tag->execute_state(this); + if ( typeflags & TAG_ACTION ) tag->execute_action(this); + } + } + // Execute this frame's init actions, if necessary. if (m_init_actions_executed[frame] == false) { @@ -2441,25 +2461,6 @@ } } - const PlayList* playlist = m_def->getPlaylist(frame); - if ( playlist ) - { - IF_VERBOSE_ACTION( - // Use 1-based frame numbers - log_action(_("Executing " SIZET_FMT " tags in frame " - SIZET_FMT "/" SIZET_FMT " of sprite %s"), - playlist->size(), frame+1, get_frame_count(), - getTargetPath().c_str()); - ); - - for (PlayList::const_iterator it=playlist->begin(), itEnd=playlist->end(); - it != itEnd; ++it) - { - execute_tag* tag = *it; - if ( typeflags & TAG_DLIST ) tag->execute_state(this); - if ( typeflags & TAG_ACTION ) tag->execute_action(this); - } - } testInvariant(); } Index: testsuite/misc-ming.all/init_action_test.c =================================================================== RCS file: /sources/gnash/gnash/testsuite/misc-ming.all/init_action_test.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -b -r1.3 -r1.4 --- testsuite/misc-ming.all/init_action_test.c 1 Jul 2007 10:54:54 -0000 1.3 +++ testsuite/misc-ming.all/init_action_test.c 18 Sep 2007 09:49:24 -0000 1.4 @@ -127,7 +127,14 @@ add_actions(mo, "_root.note('_root.actions'); _root.x += '5+'; "); SWFMovie_nextFrame(mo); /* 2nd frame */ - check_equals(mo, "_root.x", "'1+2+3+4+5+6+7+8+9+'"); + /* The check below used to succeeds, and started failing when + * executing init actions "after" DLIST tags. + * Should be fixed if we postpone the call to ::construct + * to "after" init actions are executed, which would require + * some book keeping in sprite_instance class + */ + xcheck_equals(mo, "_root.x", "'1+2+3+4+5+6+7+8+9+'"); + check_equals(mo, "_root.y", "'var_of_root'"); add_actions(mo, " _root.totals(); stop(); "); SWFMovie_nextFrame(mo); /* 3rd frame */ Index: testsuite/misc-swfc.all/movieclip_destruction_test1.sc =================================================================== RCS file: /sources/gnash/gnash/testsuite/misc-swfc.all/movieclip_destruction_test1.sc,v retrieving revision 1.16 retrieving revision 1.17 diff -u -b -r1.16 -r1.17 --- testsuite/misc-swfc.all/movieclip_destruction_test1.sc 18 Sep 2007 06:27:34 -0000 1.16 +++ testsuite/misc-swfc.all/movieclip_destruction_test1.sc 18 Sep 2007 09:49:24 -0000 1.17 @@ -135,8 +135,8 @@ .initaction mc3: // Add initactions for mc3(mc3 is not placed) _root.initActionExecuted += ", mc3"; - _root.xcheck_equals(mc1, null); - _root.xcheck_equals(typeof(mc1), 'undefined'); + _root.check_equals(mc1, null); + _root.check_equals(typeof(mc1), 'undefined'); _root.check_equals(typeof(_root.getInstanceAtDepth(-16386)), 'undefined'); .end @@ -242,9 +242,9 @@ .initaction mc6: // Add initactions for mc6 // Gnash fails by not respecting actions order for initactions _root.initActionExecuted += ", mc6"; - _root.xcheck_equals(typeof(mc6), 'movieclip'); - _root.xcheck_equals(typeof(mc6.mc61), 'movieclip'); - _root.xcheck_equals(typeof(mc7), 'movieclip'); + _root.check_equals(typeof(mc6), 'movieclip'); + _root.check_equals(typeof(mc6.mc61), 'movieclip'); + _root.check_equals(typeof(mc7), 'movieclip'); _root.check_equals(this, _root); // target is the root ! .end _______________________________________________ Gnash-commit mailing list Gnash-commit@gnu.org http://lists.gnu.org/mailman/listinfo/gnash-commit