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

Reply via email to