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