gnash-commit
[Top][All Lists]
Advanced

[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;
        }


reply via email to

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