CVSROOT: /sources/gnash Module name: gnash Changes by: Sandro Santilli <strk> 07/09/20 20:20:37
Modified files: . : ChangeLog server : sprite_instance.cpp Log message: * server/sprite_instance.cpp (goto_frame): wait for target frame even if we won't push any action. Fixes bug #21126. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.4363&r2=1.4364 http://cvs.savannah.gnu.org/viewcvs/gnash/server/sprite_instance.cpp?cvsroot=gnash&r1=1.350&r2=1.351 Patches: Index: ChangeLog =================================================================== RCS file: /sources/gnash/gnash/ChangeLog,v retrieving revision 1.4363 retrieving revision 1.4364 diff -u -b -r1.4363 -r1.4364 --- ChangeLog 20 Sep 2007 17:07:20 -0000 1.4363 +++ ChangeLog 20 Sep 2007 20:20:36 -0000 1.4364 @@ -1,3 +1,8 @@ +2007-09-21 Sandro Santilli <[EMAIL PROTECTED]> + + * server/sprite_instance.cpp (goto_frame): wait for target frame + even if we won't push any action. Fixes bug #21126. + 2007-09-21 Chad Musick <[EMAIL PROTECTED]> * server/parser/abc_block.cpp,.h: Read AS3 blocks. (unfinished) Index: server/sprite_instance.cpp =================================================================== RCS file: /sources/gnash/gnash/server/sprite_instance.cpp,v retrieving revision 1.350 retrieving revision 1.351 diff -u -b -r1.350 -r1.351 --- server/sprite_instance.cpp 20 Sep 2007 14:07:31 -0000 1.350 +++ server/sprite_instance.cpp 20 Sep 2007 20:20:36 -0000 1.351 @@ -2464,10 +2464,20 @@ // and stop at that frame. set_play_state(STOP); - if(target_frame_number > m_def->get_frame_count() - 1) + if ( target_frame_number > m_def->get_frame_count() - 1) { + target_frame_number = m_def->get_frame_count() - 1; + + if ( ! m_def->ensure_frame_loaded(target_frame_number+1) ) + { + log_error("Target frame of a gotoFrame(%d) was never loaded, altought frame count in header (%d) said we would have found it", + target_frame_number+1, m_def->get_frame_count()); + return; // ... I guess, or not ? + } + // Just set _currentframe and return. - m_current_frame = m_def->get_frame_count() - 1; + m_current_frame = target_frame_number; + // don't push actions, already tested. return; } @@ -2506,7 +2516,7 @@ if ( ! m_def->ensure_frame_loaded(target_frame_number+1) ) { log_error("Target frame of a gotoFrame(%d) was never loaded, altought frame count in header (%d) said we would have found it", - target_frame_number+1, m_def->get_frame_count()+1); + target_frame_number+1, m_def->get_frame_count()); return; // ... I guess, or not ? } } _______________________________________________ Gnash-commit mailing list Gnash-commit@gnu.org http://lists.gnu.org/mailman/listinfo/gnash-commit