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