gnash-commit
[Top][All Lists]
Advanced

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

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


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog server/vm/ASHandlers.cpp
Date: Fri, 08 Dec 2006 23:25:47 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  06/12/08 23:25:47

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

Log message:
                * server/vm/ASHandlers.cpp (ActionDelete): use the new
                  ActionExec::delVariable() method. Fixes bug #18482.
                  (ActionDeleteVar) use the new as_object::delProperty()
                  method, but no testcases for it...

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.1898&r2=1.1899
http://cvs.savannah.gnu.org/viewcvs/gnash/server/vm/ASHandlers.cpp?cvsroot=gnash&r1=1.12&r2=1.13

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.1898
retrieving revision 1.1899
diff -u -b -r1.1898 -r1.1899
--- ChangeLog   8 Dec 2006 23:11:25 -0000       1.1898
+++ ChangeLog   8 Dec 2006 23:25:47 -0000       1.1899
@@ -1,5 +1,12 @@
 2006-12-08 Sandro Santilli <address@hidden>
 
+       * server/vm/ASHandlers.cpp (ActionDelete): use the new
+         ActionExec::delVariable() method. Fixes bug #18482. 
+         (ActionDeleteVar) use the new as_object::delProperty()
+         method, but no testcases for it...
+
+2006-12-08 Sandro Santilli <address@hidden>
+
        * server/as_environment.{cpp,h}: obsoleted crappy find_local function,
          substituted with iterators-based equivalent; typedef'd
          LocalFrames; added del_variable_raw method.

Index: server/vm/ASHandlers.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/vm/ASHandlers.cpp,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- server/vm/ASHandlers.cpp    7 Dec 2006 17:43:38 -0000       1.12
+++ server/vm/ASHandlers.cpp    8 Dec 2006 23:25:47 -0000       1.13
@@ -16,7 +16,7 @@
 
 //
 
-/* $Id: ASHandlers.cpp,v 1.12 2006/12/07 17:43:38 strk Exp $ */
+/* $Id: ASHandlers.cpp,v 1.13 2006/12/08 23:25:47 strk Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -2005,6 +2005,8 @@
 
        ensure_stack(env, 2); // var, object
 
+       //log_msg("ActionDeleteVar");
+
        as_value var = env.pop();
        as_value object = env.top(0);
        if (object.get_type() == as_value::OBJECT)
@@ -2012,12 +2014,8 @@
                as_object* obj = (as_object*) object.to_object();
                if (obj)
                {
-                       // set to NaN and eventually release memory
-                       obj->set_member(var.to_tu_string(), as_value());
-
-                       // TODO: remove a member  from object if it there is
-
-                       env.top(0).set_bool(true);
+                       bool ret = obj->delProperty(var.to_std_string());
+                       env.top(0).set_bool(ret);
                        return;
                }
        }
@@ -2033,21 +2031,8 @@
 
     ensure_stack(env, 1); // var
 
-    as_value var = env.top(0);
-
-    std::string varstr(var.to_string());
-    
-    as_value oldval = env.get_variable_raw(varstr);
-    
-    if (!oldval.get_type() == as_value::UNDEFINED) {
-        // set variable to 'undefined'
-        // that hopefully --ref_count and eventually
-        // release memory. 
-        env.set_variable_raw(varstr, as_value());
-        env.top(0).set_bool(true);
-    } else {
-        env.top(0).set_bool(false);
-    }
+    // See bug #18482
+    env.top(0) = thread.delVariable(env.top(0).to_std_string());
 }
 
 void




reply via email to

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