[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] /srv/bzr/gnash/trunk r11706: void creating synthetized ob
From: |
Sandro Santilli |
Subject: |
[Gnash-commit] /srv/bzr/gnash/trunk r11706: void creating synthetized object from primitive types on ACTION_DELETE* (would be plain silly) |
Date: |
Thu, 17 Dec 2009 00:02:02 +0100 |
User-agent: |
Bazaar (2.0.2) |
------------------------------------------------------------
revno: 11706
committer: Sandro Santilli <address@hidden>
branch nick: trunk
timestamp: Thu 2009-12-17 00:02:02 +0100
message:
void creating synthetized object from primitive types on ACTION_DELETE*
(would be plain silly)
modified:
libcore/vm/ASHandlers.cpp
=== modified file 'libcore/vm/ASHandlers.cpp'
--- a/libcore/vm/ASHandlers.cpp 2009-12-08 08:47:03 +0000
+++ b/libcore/vm/ASHandlers.cpp 2009-12-16 23:02:02 +0000
@@ -2332,13 +2332,25 @@
// assume it's a variable and try to delete.
env.top(1).set_bool(thread.delVariable(propertyname));
}
- else {
+ else
+ {
as_value target = thread.getVariable(path);
- obj = toObject(getGlobal(thread.env), target);
- propertyname = var;
- }
- }
- else obj = toObject(getGlobal(thread.env), env.top(1));
+
+ if ( target.is_object() ) // Don't syntetize one otherwise !!
+ {
+ obj = toObject(getGlobal(thread.env), target);
+
+ propertyname = var;
+ }
+ }
+ }
+ else
+ {
+ if ( env.top(1).is_object() ) // Don't syntetize one otherwise !!
+ {
+ obj = toObject(getGlobal(thread.env), env.top(1));
+ }
+ }
if (!obj)
{
@@ -2347,7 +2359,7 @@
env.top(1), env.top(0));
);
env.top(1).set_bool(false);
- env.drop(1);
+ env.drop(1);
return;
}
@@ -2380,19 +2392,20 @@
// Otherwise see if it's an object and delete it.
as_value target = thread.getVariable(path);
- boost::intrusive_ptr<as_object> obj = toObject(getGlobal(thread.env),
target);
+ if ( ! target.is_object() )
+ {
+ // Don't syntetize one !!
- if (!obj)
- {
IF_VERBOSE_ASCODING_ERRORS(
log_aserror(_("delete2 called with a path that does not resolve "
"to an object"), env.top(1), env.top(0));
);
env.top(1).set_bool(false);
- env.drop(1);
+ env.drop(1);
return;
}
+ as_object* obj = toObject(getGlobal(thread.env), target);
env.top(1).set_bool(thread.delObjectMember(*obj, var));
}
- [Gnash-commit] /srv/bzr/gnash/trunk r11706: void creating synthetized object from primitive types on ACTION_DELETE* (would be plain silly),
Sandro Santilli <=