gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] /srv/bzr/gnash/avm2 r9518: INITPROPERTY opcode: Make sure


From: Tom Stellard
Subject: [Gnash-commit] /srv/bzr/gnash/avm2 r9518: INITPROPERTY opcode: Make sure not initialize a property on an undefined object.
Date: Fri, 22 Aug 2008 19:29:02 +0800
User-agent: Bazaar (1.5)

------------------------------------------------------------
revno: 9518
committer: Tom Stellard <address@hidden>
branch nick: gnash_traits
timestamp: Fri 2008-08-22 19:29:02 +0800
message:
  INITPROPERTY opcode: Make sure not initialize a property on an undefined 
object.
modified:
  libcore/vm/Machine.cpp
=== modified file 'libcore/vm/Machine.cpp'
--- a/libcore/vm/Machine.cpp    2008-08-22 11:16:15 +0000
+++ b/libcore/vm/Machine.cpp    2008-08-22 11:29:02 +0000
@@ -1588,12 +1588,14 @@
                as_value v = pop_stack();
                //TODO: If multiname is a runtime mutiname we need to also pop 
name and namespace values.
                as_value object = pop_stack();
-               LOG_DEBUG_AVM("Initializing property ABC_id=%u name=%s on 
object 
%s",a.getABCName(),mPoolObject->mStringPool[a.getABCName()],object.toDebugString());
-
-               
object.to_object()->init_member(mPoolObject->mStringPool[a.getABCName()],v,0,0);
-
-//             mStack.drop(completeName(a));
-               //TODO: mStack.pop().to_object().setProperty(a, v, true); // 
true for init
+               if(object.is_undefined()){
+                       LOG_DEBUG_AVM("Object is undefined will skip trying to 
initialize property.");
+               }
+               else{
+                       LOG_DEBUG_AVM("Initializing property ABC_id=%u name=%s 
on object 
%s",a.getABCName(),mPoolObject->mStringPool[a.getABCName()],object.toDebugString());
+
+                       
object.to_object().get()->init_member(mPoolObject->mStringPool[a.getABCName()],v,0,0);
+               }
                break;
        }
 /// 0x6A ABC_ACTION_DELETEPROPERTY


reply via email to

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