[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] /srv/bzr/gnash/avm2 r9474: Fix incorrect stack actions in
From: |
Tom Stellard |
Subject: |
[Gnash-commit] /srv/bzr/gnash/avm2 r9474: Fix incorrect stack actions in INITPROPERTY and NEWCLASS opcodes. |
Date: |
Sun, 17 Aug 2008 18:51:27 +0800 |
User-agent: |
Bazaar (1.5) |
------------------------------------------------------------
revno: 9474
committer: Tom Stellard <address@hidden>
branch nick: gnash_dev
timestamp: Sun 2008-08-17 18:51:27 +0800
message:
Fix incorrect stack actions in INITPROPERTY and NEWCLASS opcodes.
modified:
libcore/vm/Machine.cpp
=== modified file 'libcore/vm/Machine.cpp'
--- a/libcore/vm/Machine.cpp 2008-08-17 10:33:43 +0000
+++ b/libcore/vm/Machine.cpp 2008-08-17 10:51:27 +0000
@@ -1374,7 +1374,8 @@
boost::uint32_t cid = mStream->read_V32();
asClass *c = pool_class(cid, mPoolObject);
LOG_DEBUG_AVM("Creating new class id=%u
name=%s",c->getName(),mPoolObject->mStringPool[c->getName()]);
-
+
+ as_object* base_class = pop_stack().to_object().get();
as_object* new_class = new as_object();
//Create the class.
abc_function* constructor = new
abc_function(c->getConstructor()->getBody());
@@ -1612,9 +1613,7 @@
boost::uint32_t index = mStream->read_V32();
asName a = pool_name(index, mPoolObject);
as_value v = pop_stack();
- //TODO: There may or may not be a namespace, or a name object
on the stack, we need to figure
- //out how to determine what is on the stack.
- as_value ns = 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());
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] /srv/bzr/gnash/avm2 r9474: Fix incorrect stack actions in INITPROPERTY and NEWCLASS opcodes.,
Tom Stellard <=