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, 07 Dec 2006 14:35:25 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  06/12/07 14:35:25

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

Log message:
                * server/as_environment.cpp (find_target):
                  fixed handling of paths ending with a slash
                  (example: '../').

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.1878&r2=1.1879
http://cvs.savannah.gnu.org/viewcvs/gnash/server/as_environment.cpp?cvsroot=gnash&r1=1.33&r2=1.34
http://cvs.savannah.gnu.org/viewcvs/gnash/server/vm/ASHandlers.cpp?cvsroot=gnash&r1=1.9&r2=1.10

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.1878
retrieving revision 1.1879
diff -u -b -r1.1878 -r1.1879
--- ChangeLog   7 Dec 2006 14:16:46 -0000       1.1878
+++ ChangeLog   7 Dec 2006 14:35:24 -0000       1.1879
@@ -1,5 +1,11 @@
 2006-12-07 Sandro Santilli <address@hidden>
 
+       * server/as_environment.cpp (find_target):
+         fixed handling of paths ending with a slash
+         (example: '../').
+       * server/vm/ASHandlers.cpp (ActionGetProperty):
+         raise a warning if the target is not found
+         (ASCODING ERROR)
        * server/as_environment.{cpp,h}: registers 
          debugging functions moved to implementation
          file, don't print local registers if empty.

Index: server/as_environment.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/as_environment.cpp,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -b -r1.33 -r1.34
--- server/as_environment.cpp   7 Dec 2006 14:16:46 -0000       1.33
+++ server/as_environment.cpp   7 Dec 2006 14:35:25 -0000       1.34
@@ -16,7 +16,7 @@
 
 //
 
-/* $Id: as_environment.cpp,v 1.33 2006/12/07 14:16:46 strk Exp $ */
+/* $Id: as_environment.cpp,v 1.34 2006/12/07 14:35:25 strk Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -419,7 +419,10 @@
 character*
 as_environment::find_target(const std::string& path) const
 {
+       //log_msg("find_target(%s) called", path.c_str());
+
     if (path.length() <= 0) {
+       //log_msg("Returning m_target");
        return m_target;
     }
     
@@ -434,6 +437,7 @@
     if (*p == '/') {
        // Absolute path.  Start at the root.
        env = env->get_root_movie();
+       //log_msg("Absolute path, start at the root (%p)", (void*)env);
        p++;
     }
     
@@ -446,13 +450,16 @@
        const char*     next_slash = next_slash_or_dot(p);
        subpart = p;
        if (next_slash == p) {
-           log_error("error: invalid path '%s'", path.c_str());
+           log_error("invalid path '%s'", path.c_str());
            break;
        } else if (next_slash) {
            // Cut off the slash and everything after it.
            subpart.resize(next_slash - p);
        }
        
+       // No more components to scan
+       if ( subpart.empty() ) break;
+
        env = env->get_relative_target(subpart);
        //@@   _level0 --> root, .. --> parent, . --> this, other == character
        

Index: server/vm/ASHandlers.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/vm/ASHandlers.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- server/vm/ASHandlers.cpp    6 Dec 2006 10:58:34 -0000       1.9
+++ server/vm/ASHandlers.cpp    7 Dec 2006 14:35:25 -0000       1.10
@@ -16,7 +16,7 @@
 
 //
 
-/* $Id: ASHandlers.cpp,v 1.9 2006/12/06 10:58:34 strk Exp $ */
+/* $Id: ASHandlers.cpp,v 1.10 2006/12/07 14:35:25 strk Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -1121,7 +1121,8 @@
 
        ensure_stack(env, 2); // prop num, target
 
-       character *target = env.find_target(env.top(1));
+       as_value& tgt_val = env.top(1);
+       character *target = env.find_target(tgt_val);
        unsigned int prop_number = (unsigned int)env.top(0).to_number();
        if (target)
        {
@@ -1141,6 +1142,11 @@
     }
        else
        {
+               // ASCODING error ? (well, last time it was a gnash error ;)
+               IF_VERBOSE_ASCODING_ERRORS (
+               log_warning("Could not find GetProperty target (%s)",
+                               tgt_val.to_string());
+               );
                env.top(1) = as_value();
        }
        env.drop(1);




reply via email to

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