gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] gnash ChangeLog server/as_environment.cpp serve...


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog server/as_environment.cpp serve...
Date: Thu, 22 Nov 2007 18:50:56 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  07/11/22 18:50:56

Modified files:
        .              : ChangeLog 
        server         : as_environment.cpp as_environment.h 

Log message:
        drop the is_slash_based parameter from parse_path, which gets 
simplified a bit.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.4924&r2=1.4925
http://cvs.savannah.gnu.org/viewcvs/gnash/server/as_environment.cpp?cvsroot=gnash&r1=1.110&r2=1.111
http://cvs.savannah.gnu.org/viewcvs/gnash/server/as_environment.h?cvsroot=gnash&r1=1.65&r2=1.66

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.4924
retrieving revision 1.4925
diff -u -b -r1.4924 -r1.4925
--- ChangeLog   22 Nov 2007 18:05:10 -0000      1.4924
+++ ChangeLog   22 Nov 2007 18:50:55 -0000      1.4925
@@ -1,5 +1,10 @@
 2007-11-22 Sandro Santilli <address@hidden>
 
+       * server/as_environment.{cpp,h}: drop the is_slash_based
+         parameter from parse_path, which gets simplified a bit.
+
+2007-11-22 Sandro Santilli <address@hidden>
+
        * testsuite/actionscript.all/getvariable.as: additional test
          for /slash/based path ending with a colon.
 

Index: server/as_environment.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/as_environment.cpp,v
retrieving revision 1.110
retrieving revision 1.111
diff -u -b -r1.110 -r1.111
--- server/as_environment.cpp   21 Nov 2007 09:21:49 -0000      1.110
+++ server/as_environment.cpp   22 Nov 2007 18:50:56 -0000      1.111
@@ -17,7 +17,7 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 //
 
-/* $Id: as_environment.cpp,v 1.110 2007/11/21 09:21:49 cmusick Exp $ */
+/* $Id: as_environment.cpp,v 1.111 2007/11/22 18:50:56 strk Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -61,8 +61,7 @@
     log_debug(_("get_variable(%s)"), varname.c_str());
 #endif
 
-    bool is_slash_based;
-    if (parse_path(varname, path, var, &is_slash_based))
+    if ( parse_path(varname, path, var) )
     {
         // TODO: let find_target return generic as_objects, or use 'with' 
stack,
         //       see player2.swf or bug #18758 (strip.swf)
@@ -258,11 +257,11 @@
     std::string        path;
     std::string        var;
     //log_msg(_("set_variable(%s, %s)"), varname.c_str(), 
val.to_debug_string().c_str());
-    bool is_slash_based;
-    if (parse_path(varname, path, var, &is_slash_based)) {
+    if ( parse_path(varname, path, var) )
+    {
        //log_msg(_("Variable '%s' parsed into path='%s', var='%s'"), 
varname.c_str(), path.c_str(), var.c_str());
        //target = find_target(path);
-        target = find_object(path, &scopeStack); //is_slash_based ? 
find_object_slashsyntax(path, &scopeStack) : find_object_dotsyntax(path, 
&scopeStack); 
+        target = find_object(path, &scopeStack); 
        if (target)
        {
            target->set_member(VM::get().getStringTable().find(var), val);
@@ -412,7 +411,7 @@
 /* public static */
 bool
 as_environment::parse_path(const std::string& var_path,
-               std::string& path, std::string& var, bool* is_slash_based) 
+               std::string& path, std::string& var)
 {
 //log_msg(_("parse_path(%s)"), var_path.c_str());
     // Search for colon.
@@ -420,7 +419,6 @@
     int        var_path_length = var_path.length();
     for ( ; colon_index < var_path_length; colon_index++) {
        if (var_path[colon_index] == ':') {
-            if ( is_slash_based ) *is_slash_based = true;
            // Found it.
            break;
        }
@@ -432,7 +430,6 @@
        for (colon_index = var_path_length - 1; colon_index >= 0; 
colon_index--) {
            if (var_path[colon_index] == '.') {
                // Found it.
-                if ( is_slash_based ) *is_slash_based = false;
                break;
            }
        }
@@ -444,14 +441,13 @@
     
     // Make the subparts.
     
-    // Var.
+    // Var
     var = &var_path[colon_index + 1];
     
-    // @@ could be better. 
-    path = var_path;
-    path.resize(colon_index);
+    // Path
+    path.assign(var_path, 0, colon_index);
     
-//log_msg(_(" path=%s var=%s"), path.c_str(), var.c_str());
+//log_debug(_(" path=%s var=%s"), path.c_str(), var.c_str());
 
     return true;
 }
@@ -462,9 +458,8 @@
 {
        string path;
        string var;
-       bool is_slash_based;
-       if( ! parse_path(var_path, path, var, &is_slash_based) ) return false;
-        as_object* target_ptr = find_object(path); // is_slash_based ? 
find_object_slashsyntax(path) : find_object_dotsyntax(path); 
+       if ( ! parse_path(var_path, path, var) ) return false;
+        as_object* target_ptr = find_object(path); 
        if ( ! target_ptr ) return false;
 
        target_ptr->get_member(VM::get().getStringTable().find(var), &val);

Index: server/as_environment.h
===================================================================
RCS file: /sources/gnash/gnash/server/as_environment.h,v
retrieving revision 1.65
retrieving revision 1.66
diff -u -b -r1.65 -r1.66
--- server/as_environment.h     22 Nov 2007 11:09:54 -0000      1.65
+++ server/as_environment.h     22 Nov 2007 18:50:56 -0000      1.66
@@ -377,30 +377,26 @@
        ///
        int get_version() const;
 
-       // See if the given variable name is actually a sprite path
-       // followed by a variable name.  These come in the format:
-       //
-       //      /path/to/some/sprite/:varname
-       //
-       // (or same thing, without the last '/')
-       //
-       // or
-       //      path.to.some.var
-       //
-       // If that's the format, puts the path part (no colon or
-       // trailing slash) in *path, and the varname part (no colon, no dot)
-       // in *var and returns true.
-       //
-       // If no colon or dot, returns false and leaves *path & *var alone.
-       //
-       /// @param is_slash_based
-       ///     If not null gets set to true if path is slash-based
-       ///     (path/to/:variable), and to false if path is dot-based
-       ///     (path.to.variable).
+       /// See if the given variable name is actually a sprite path
+       /// followed by a variable name.  These come in the format:
+       ///
+       ///     /path/to/some/sprite/:varname
+       ///
+       /// (or same thing, without the last '/')
+       ///
+       /// or
+       ///     path.to.some.var
+       ///
+       /// If that's the format, puts the path part (no colon or
+       /// trailing slash) in *path, and the varname part (no colon, no dot)
+       /// in *var and returns true.
+       ///
+       /// If no colon or dot, returns false and leaves *path & *var alone.
        ///
        /// TODO: return an integer: 0 not a path, 1 a slash-based path, 2 a 
dot-based path
+       ///
        static bool parse_path(const std::string& var_path, std::string& path,
-               std::string& var, bool* is_slash_based=NULL);
+                       std::string& var);
 
        /// \brief
        /// Try to parse a string as a variable path
@@ -409,12 +405,14 @@
        ///
        ///     /path/to/some/sprite/:varname
        ///
-       /// (or same thing, without the last '/')
+       /// or
+       ///
+       ///     /path/to/some/sprite 
        ///
        /// or
        ///     path.to.some.var
        ///
-       /// If there's no dot nor comma, or if the 'path' part
+       /// If there's no dot nor colon, or if the 'path' part
        /// does not resolve to an object, this function returns false.
        /// Otherwise, true is returned and 'target' and 'val'
        /// parameters are appropriaterly set.




reply via email to

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