[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] /srv/bzr/gnash/avm2 r9677: Fix segfault in INITPROPERTY o
From: |
Tom Stellard |
Subject: |
[Gnash-commit] /srv/bzr/gnash/avm2 r9677: Fix segfault in INITPROPERTY opcode. |
Date: |
Thu, 13 Nov 2008 23:15:25 +0800 |
User-agent: |
Bazaar (1.5) |
------------------------------------------------------------
revno: 9677
committer: Tom Stellard <address@hidden>
branch nick: gnash_dev
timestamp: Thu 2008-11-13 23:15:25 +0800
message:
Fix segfault in INITPROPERTY opcode.
modified:
libcore/vm/Machine.cpp
=== modified file 'libcore/vm/Machine.cpp'
--- a/libcore/vm/Machine.cpp 2008-11-13 15:04:04 +0000
+++ b/libcore/vm/Machine.cpp 2008-11-13 15:15:25 +0000
@@ -1663,13 +1663,17 @@
asName a = pool_name(index, mPoolObject);
as_value v = pop_stack();
//TODO: If multiname is a runtime mutiname we need to also pop
name and namespace values.
- as_value object_asval = pop_stack();
- if(object_asval.is_undefined() || object_asval.is_null()){
- LOG_DEBUG_AVM("Object is undefined will skip trying to
initialize property.");
+ as_value object_val = pop_stack();
+
+ as_object* object = object_val.to_object().get();
+ if(!object){
+ IF_VERBOSE_ASCODING_ERRORS(
+ log_aserror(_("Can't initialize a property of a value
that doesn't cast to an object (%s)."),
+ object_val);
+ )
}
else{
- as_object& obj = *object_asval.to_object().get();
- !obj.set_member(a.getGlobalName(),v,false);
+ object->set_member(a.getGlobalName(),v,false);
}
break;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] /srv/bzr/gnash/avm2 r9677: Fix segfault in INITPROPERTY opcode.,
Tom Stellard <=