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


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog server/as_environment.cpp
Date: Wed, 12 Sep 2007 13:48:25 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  07/09/12 13:48:24

Modified files:
        .              : ChangeLog 
        server         : as_environment.cpp 

Log message:
                * server/as_environment.cpp (parse_path): revert zou change as 
it
                  breaks callFunction_testrunner (assertion failure).

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.4291&r2=1.4292
http://cvs.savannah.gnu.org/viewcvs/gnash/server/as_environment.cpp?cvsroot=gnash&r1=1.86&r2=1.87

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.4291
retrieving revision 1.4292
diff -u -b -r1.4291 -r1.4292
--- ChangeLog   12 Sep 2007 12:53:55 -0000      1.4291
+++ ChangeLog   12 Sep 2007 13:48:24 -0000      1.4292
@@ -1,3 +1,8 @@
+2007-09-12 Sandro Santilli <address@hidden>
+
+       * server/as_environment.cpp (parse_path): revert zou change as it
+         breaks callFunction_testrunner (assertion failure).
+
 2007-09-12 Bastiaan Jacques <address@hidden>
 
        * backend/render_handler_ogl.cpp: Implement getPixel().

Index: server/as_environment.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/as_environment.cpp,v
retrieving revision 1.86
retrieving revision 1.87
diff -u -b -r1.86 -r1.87
--- server/as_environment.cpp   12 Sep 2007 09:03:30 -0000      1.86
+++ server/as_environment.cpp   12 Sep 2007 13:48:24 -0000      1.87
@@ -17,7 +17,7 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 //
 
-/* $Id: as_environment.cpp,v 1.86 2007/09/12 09:03:30 zoulunkai Exp $ */
+/* $Id: as_environment.cpp,v 1.87 2007/09/12 13:48:24 strk Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -383,66 +383,45 @@
 as_environment::parse_path(const std::string& var_path,
                            std::string& path, std::string& var, bool* 
is_slash_based) 
 {
-    //log_msg(_("parse_path(%s)"), var_path.c_str());
-
-    bool slash_based = false;
-    std::string::size_type var_path_length = var_path.length();
-    std::string::size_type separator_index = var_path_length - 1;
-    for( ; separator_index > 0; separator_index--)
-    {
-        if(var_path[separator_index] == ':')
-        {
-            slash_based = true;
+//log_msg(_("parse_path(%s)"), var_path.c_str());
+    // Search for colon.
+    int        colon_index = 0;
+    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;
         }
-        else if(var_path[separator_index] == '.')
-        {
-            slash_based = false;
+    }
+    
+    if (colon_index >= var_path_length)        {
+       // No colon.  Is there a '.'?  Find the last
+       // one, if any.
+       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;
         }
     }
-
-    if(separator_index == 0)
-    // if no path, only raw variable.
-    {
+       if (colon_index < 0) {
+//log_msg(_(" no colon index"));
         return false;
     }
+    }
 
     // Make the subparts.
 
     // Var.
-    var = &var_path[separator_index + 1];
+    var = &var_path[colon_index + 1];
 
     // @@ could be better. 
     path = var_path;
-    path.resize(separator_index);
+    path.resize(colon_index);
 
-    if(is_slash_based)
-    {
-        *is_slash_based = slash_based;
-    }
-
-//#define SUPPORT_IRREGULAR_PATH
-// enable this would give 3 more xpasses for callFunction_test.c,
-// but also slow down lots of things.
-// TODO: optimize all parse_path() related functions
-#ifdef SUPPORT_IRREGULAR_PATH
-    if(slash_based)
-    {
-        // make sure the path is slash_based, see testcase 
callFunction_test.swf
-        for(std::string::size_type index=0; index < separator_index; index++)
-        {
-            // Replace dot and colon with slash in a "slash based" path 
-            // But don't replace ".."
-            if((path[index] == ':') || (path[index] == '.' && path[index+1] != 
'.'))
-            {
-                path[index] = '/';
-            }
-        }
-    }
-#endif
+//log_msg(_(" path=%s var=%s"), path.c_str(), var.c_str());
 
-    //log_msg(_(" path=%s var=%s"), path.c_str(), var.c_str());
     return true;
 }
 




reply via email to

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