gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] gnash server/vm/ASHandlers.cpp ChangeLog


From: Bastiaan Jacques
Subject: [Gnash-commit] gnash server/vm/ASHandlers.cpp ChangeLog
Date: Tue, 20 Mar 2007 09:55:09 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Bastiaan Jacques <bjacques>     07/03/20 09:55:09

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

Log message:
        * server/vm/ASHandlers.cpp: In ActionDelete(), don't pop an object off
        the AS stack in the hopes that it magically has a property which might
        be the object that is to be deleted. Instead, traverse the stack using
        delVariable().

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/server/vm/ASHandlers.cpp?cvsroot=gnash&r1=1.66&r2=1.67
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.2635&r2=1.2636

Patches:
Index: server/vm/ASHandlers.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/vm/ASHandlers.cpp,v
retrieving revision 1.66
retrieving revision 1.67
diff -u -b -r1.66 -r1.67
--- server/vm/ASHandlers.cpp    19 Mar 2007 17:11:14 -0000      1.66
+++ server/vm/ASHandlers.cpp    20 Mar 2007 09:55:08 -0000      1.67
@@ -14,7 +14,7 @@
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
-/* $Id: ASHandlers.cpp,v 1.66 2007/03/19 17:11:14 bjacques Exp $ */
+/* $Id: ASHandlers.cpp,v 1.67 2007/03/20 09:55:08 bjacques Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -2045,7 +2045,7 @@
 void
 SWFHandlers::ActionDelete(ActionExec& thread)
 {
-       GNASH_REPORT_FUNCTION;
+//     GNASH_REPORT_FUNCTION;
        as_environment& env = thread.env;
 
        assert(thread.code[thread.pc] == SWF::ACTION_DELETE); // 0x3A
@@ -2064,36 +2064,11 @@
        }
 
        as_value var = env.pop();
-       as_value object; // undefined
-
-       if ( stacksize > 1 )
-       {
-               // I'm not sure this is correct, what happens
-               // if the stack actually has an additional 
-               // value but it is not meant for us ??
-               object = env.pop();
-       }
-       else
-       {
-               IF_VERBOSE_MALFORMED_SWF(
-                       log_warning("One element on the stack "
-                               "at ActionDelete (0x3A). "
-                               "Assuming 'undefined' for Object arg.");
-               );
-       }
-
-
-       as_object* obj = (as_object*) object.to_object();
-       bool ret;
-       if (obj) {
-               ret = obj->delProperty(var.to_std_string()).second;
-       } else {
-               ret = thread.delVariable(var.to_std_string());
-       }
 
+       bool ret = thread.delVariable(var.to_std_string());
        env.push(as_value(ret));
-       return;
 
+       return;
 }
 
 void

Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.2635
retrieving revision 1.2636
diff -u -b -r1.2635 -r1.2636
--- ChangeLog   20 Mar 2007 09:46:19 -0000      1.2635
+++ ChangeLog   20 Mar 2007 09:55:09 -0000      1.2636
@@ -8,6 +8,10 @@
        * server/as_object.h: Add ensureType<classname>, which is intended to
        replace the class-specific ensureClass functions. Suggested by Ann.
        * server/asobj/Boolean.cpp: Switch ensureClass to ensureType.
+       * server/vm/ASHandlers.cpp: In ActionDelete(), don't pop an object off
+       the AS stack in the hopes that it magically has a property which might
+       be the object that is to be deleted. Instead, traverse the stack using
+       delVariable().
 
 2007-03-19 Sandro Santilli <address@hidden>
 




reply via email to

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