gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] gnash ChangeLog server/sprite_instance.cpp test...


From: Udo Giacomozzi
Subject: [Gnash-commit] gnash ChangeLog server/sprite_instance.cpp test...
Date: Fri, 07 Dec 2007 14:39:20 +0000

CVSROOT:        /cvsroot/gnash
Module name:    gnash
Changes by:     Udo Giacomozzi <udog>   07/12/07 14:39:20

Modified files:
        .              : ChangeLog 
        server         : sprite_instance.cpp 
        testsuite/misc-swfc.all: gotoFrameLabelAsFunction.sc 

Log message:
        server/sprite_instance.cpp: fix gotoAndXXX for frame labels

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.5107&r2=1.5108
http://cvs.savannah.gnu.org/viewcvs/gnash/server/sprite_instance.cpp?cvsroot=gnash&r1=1.406&r2=1.407
http://cvs.savannah.gnu.org/viewcvs/gnash/testsuite/misc-swfc.all/gotoFrameLabelAsFunction.sc?cvsroot=gnash&r1=1.1&r2=1.2

Patches:
Index: ChangeLog
===================================================================
RCS file: /cvsroot/gnash/gnash/ChangeLog,v
retrieving revision 1.5107
retrieving revision 1.5108
diff -u -b -r1.5107 -r1.5108
--- ChangeLog   7 Dec 2007 14:16:11 -0000       1.5107
+++ ChangeLog   7 Dec 2007 14:39:19 -0000       1.5108
@@ -6,6 +6,7 @@
          fix sanity check
        * testsuite/misc-swfc.all/gotoFrameLabelAsFunction.sc:
          new test for gotoAndPlay(label) *function*
+       * server/sprite_instance.cpp: fix gotoAndXXX for frame labels
          
 2007-12-07 Sandro Santilli <address@hidden>
 

Index: server/sprite_instance.cpp
===================================================================
RCS file: /cvsroot/gnash/gnash/server/sprite_instance.cpp,v
retrieving revision 1.406
retrieving revision 1.407
diff -u -b -r1.406 -r1.407
--- server/sprite_instance.cpp  7 Dec 2007 01:33:26 -0000       1.406
+++ server/sprite_instance.cpp  7 Dec 2007 14:39:20 -0000       1.407
@@ -502,9 +502,19 @@
                return as_value();
        }
 
+       size_t frame_number;
+       if ( ! sprite->get_frame_number(fn.arg(0), frame_number) )
+       {
+               // No dice.
+               IF_VERBOSE_ASCODING_ERRORS(
+               log_aserror(_("sprite_goto_and_play('%s') -- invalid frame"),
+                           fn.arg(0).to_debug_string().c_str());
+               );
+               return as_value();
+       }
+
        // Convert to 0-based
-       size_t target_frame = size_t(fn.arg(0).to_number() - 1);
-       sprite->goto_frame(target_frame);
+       sprite->goto_frame(frame_number);
        sprite->set_play_state(sprite_instance::PLAY);
        return as_value();
 }
@@ -521,10 +531,19 @@
                return as_value();
        }
 
-       // Convert to 0-based
-       size_t target_frame = size_t(fn.arg(0).to_number() - 1);
+       size_t frame_number;
+       if ( ! sprite->get_frame_number(fn.arg(0), frame_number) )
+       {
+               // No dice.
+               IF_VERBOSE_ASCODING_ERRORS(
+               log_aserror(_("sprite_goto_and_stop('%s') -- invalid frame"),
+                           fn.arg(0).to_debug_string().c_str());
+               );
+               return as_value();
+       }
 
-       sprite->goto_frame(target_frame);
+       // Convert to 0-based
+       sprite->goto_frame(frame_number);
        sprite->set_play_state(sprite_instance::STOP);
        return as_value();
 }

Index: testsuite/misc-swfc.all/gotoFrameLabelAsFunction.sc
===================================================================
RCS file: 
/cvsroot/gnash/gnash/testsuite/misc-swfc.all/gotoFrameLabelAsFunction.sc,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- testsuite/misc-swfc.all/gotoFrameLabelAsFunction.sc 7 Dec 2007 14:16:52 
-0000       1.1
+++ testsuite/misc-swfc.all/gotoFrameLabelAsFunction.sc 7 Dec 2007 14:39:20 
-0000       1.2
@@ -14,7 +14,7 @@
     this.onEnterFrame = function() {
        _root.framecount++;
        if (_root.framecount==10) {
-               xcheck_equals(_root._currentframe, 5);
+               check_equals(_root._currentframe, 5);
                totals(1);
        }
     };
@@ -27,6 +27,7 @@
 .frame 4
   .action:
     trace("reached label 4 (wrong)");
+    check(0);
     stop();       
   .end
 
@@ -39,6 +40,7 @@
 .frame 6
   .action:
     trace("reached label 6 (wrong)");
+    check(0);
     stop();       
   .end
   




reply via email to

[Prev in Thread] Current Thread [Next in Thread]