CVSROOT: /sources/gnash Module name: gnash Changes by: Sandro Santilli <strk> 07/10/05 08:13:29
Modified files: . : ChangeLog server : movie_root.cpp Log message: * server/movie_root.cpp: catch less ActionLimitException: in setMovieRoot and in advance (both can trigger immediate execution of actions). Basically I removed from setLevel as it can be called by a child of processAction thus resulting in a missing cleanup. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.4532&r2=1.4533 http://cvs.savannah.gnu.org/viewcvs/gnash/server/movie_root.cpp?cvsroot=gnash&r1=1.106&r2=1.107 Patches: Index: ChangeLog =================================================================== RCS file: /sources/gnash/gnash/ChangeLog,v retrieving revision 1.4532 retrieving revision 1.4533 diff -u -b -r1.4532 -r1.4533 --- ChangeLog 5 Oct 2007 00:16:06 -0000 1.4532 +++ ChangeLog 5 Oct 2007 08:13:28 -0000 1.4533 @@ -1,5 +1,12 @@ 2007-10-05 Sandro Santilli <[EMAIL PROTECTED]> + * server/movie_root.cpp: catch less ActionLimitException: in + setMovieRoot and in advance (both can trigger immediate execution + of actions). Basically I removed from setLevel as it can be called + by a child of processAction thus resulting in a missing cleanup. + +2007-10-05 Sandro Santilli <[EMAIL PROTECTED]> + * server/movie_root.cpp: catch more ActionLimitException: in setLevel and in advance (both can trigger immediate execution of actions). Index: server/movie_root.cpp =================================================================== RCS file: /sources/gnash/gnash/server/movie_root.cpp,v retrieving revision 1.106 retrieving revision 1.107 diff -u -b -r1.106 -r1.107 --- server/movie_root.cpp 5 Oct 2007 00:16:07 -0000 1.106 +++ server/movie_root.cpp 5 Oct 2007 08:13:29 -0000 1.107 @@ -137,11 +137,20 @@ void movie_root::setRootMovie(movie_instance* movie) { + try + { setLevel(0, movie); // actions in first frame of _level0 must execute now, before next advance, // or they'll be executed with _currentframe being set to 2 processActionQueue(); + } + catch (ActionLimitException& al) + { + log_error(_("ActionLimits hit: %s"), al.what()); + disableScripts(); + clearActionQueue(); + } } /* private */ @@ -165,16 +174,7 @@ (int) movie->get_movie_definition()->get_height_pixels()); /// Notify placement - try - { movie->stagePlacementCallback(); - } - catch (ActionLimitException& al) - { - log_error(_("ActionLimits hit: %s"), al.what()); - disableScripts(); - clearActionQueue(); - } assert(testInvariant()); } @@ -1146,17 +1146,7 @@ while ( ! _actionQueue.empty() ) { ExecutableCode* code = _actionQueue.front(); - try - { code->execute(); - } - catch (ActionLimitException& al) - { - log_error(_("ActionLimits hit: %s"), al.what()); - disableScripts(); - clearActionQueue(); - break; - } _actionQueue.pop_front(); delete code; } _______________________________________________ Gnash-commit mailing list Gnash-commit@gnu.org http://lists.gnu.org/mailman/listinfo/gnash-commit