gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] gnash ChangeLog server/vm/ASHandlers.cpp


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog server/vm/ASHandlers.cpp
Date: Wed, 28 Feb 2007 23:40:44 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  07/02/28 23:40:44

Modified files:
        .              : ChangeLog 
        server/vm      : ASHandlers.cpp 

Log message:
                * server/vm/ASHandlers.cpp (ActionGotoExpression):
                  Simplified function, reduced emitted warnings.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.2502&r2=1.2503
http://cvs.savannah.gnu.org/viewcvs/gnash/server/vm/ASHandlers.cpp?cvsroot=gnash&r1=1.42&r2=1.43

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.2502
retrieving revision 1.2503
diff -u -b -r1.2502 -r1.2503
--- ChangeLog   28 Feb 2007 23:24:45 -0000      1.2502
+++ ChangeLog   28 Feb 2007 23:40:44 -0000      1.2503
@@ -1,5 +1,7 @@
 2007-03-01 Sandro Santilli <address@hidden>
 
+       * server/vm/ASHandlers.cpp (ActionGotoExpression):
+         Simplified function, reduced emitted warnings.
        * server/asobj/Global.cpp: register Stage object always.
        * server/asobj/Stage.cpp: don't register addListener
          and removeListener if SWF < 6.

Index: server/vm/ASHandlers.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/vm/ASHandlers.cpp,v
retrieving revision 1.42
retrieving revision 1.43
diff -u -b -r1.42 -r1.43
--- server/vm/ASHandlers.cpp    28 Feb 2007 10:12:23 -0000      1.42
+++ server/vm/ASHandlers.cpp    28 Feb 2007 23:40:44 -0000      1.43
@@ -14,7 +14,7 @@
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
-/* $Id: ASHandlers.cpp,v 1.42 2007/02/28 10:12:23 strk Exp $ */
+/* $Id: ASHandlers.cpp,v 1.43 2007/02/28 23:40:44 strk Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -2008,75 +2008,12 @@
                return;
        }
 
-       bool success = false;
+       as_value expression = env.pop();
                  
-       as_value& expression = env.top(0);
-
-       // TODO: here we're treating STRING or NUMBER
-       //       values differently, should we simplify
-       //       by forcing a conversion instead ?
-       //       My gut feeling is we should convert to string
-       //       as that would be able to keep information for
-       //       both a number or a label.
-
-       if (expression.is_string() )
-       {
-               // @@ TODO: parse possible sprite path...
-               //
-               // Also, if the frame spec is actually a number (not a label),
-               // then we need to do the conversion...
-                     
-               const char* frame_label = expression.to_string();
-               if (target->goto_labeled_frame(frame_label))
-               {
-                       success = true;
-               }
-               else
-               {
-                       // Couldn't find the label. Try converting to a number.
-                       double num;
-                       if ( string_to_number(&num, frame_label) )
-                       {
-                               int frame_number = int(num);
+       size_t frame_number = target->get_frame_number(expression);
                                target->goto_frame(frame_number);
-                               success = true;
-                       }
-                       else
-                       {
-                               log_error("ActionGotoExpression: conversion of 
string '%s' to a number failed", frame_label);
-                       }
-                       // else no-op.
-               }
-       }
-       else if ( expression.is_number() )
-       {
-               // Frame number is 1-based !
-               int frame_number = int(expression.to_number());
-               target->goto_frame(frame_number-1);
-               success = true;
-       }
-//     else
-//     {
-//             if (expression.is_undefined())
-//             {
-//                     // No-op.
-//             }
-//             if (expression.is_object() )
-//             {
-//                     // This is a no-op; see test_goto_frame.swf
-//             }
-//     }
-                 
-       if (success)
-       {
                target->set_play_state(state);
-       }
-       else
-       {
-               log_error("No success in gotoFrame2 ? should this ever happen 
?");
-       }
                  
-       env.drop(1);
 }
 
 void




reply via email to

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