[Top][All Lists]
[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;
}