[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash/server action.cpp
From: |
strk |
Subject: |
[Gnash-commit] gnash/server action.cpp |
Date: |
Sat, 04 Feb 2006 16:52:58 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Branch:
Changes by: strk <address@hidden> 06/02/04 16:52:58
Modified files:
server : action.cpp
Log message:
Re-committed change overridden by rev. 1.20
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/server/action.cpp.diff?tr1=1.20&tr2=1.21&r1=text&r2=text
Patches:
Index: gnash/server/action.cpp
diff -u gnash/server/action.cpp:1.20 gnash/server/action.cpp:1.21
--- gnash/server/action.cpp:1.20 Sat Feb 4 16:01:25 2006
+++ gnash/server/action.cpp Sat Feb 4 16:52:58 2006
@@ -2243,8 +2243,34 @@
}
case SWF::ACTION_INITOBJECT: // declare
object
{
+ //
+ // SWFACTION_PUSH
+ // [000] Constant: 1 "obj"
+ // [001] Constant: 0 "member" <--
we handle up to here
+ // [002] Integer: 1
+ // [003] Integer: 1
+ // SWFACTION_INITOBJECT
+
+ int nmembers = (int)
env->pop().to_number();
+
+ smart_ptr<as_object> new_obj_ptr(new
as_object); // won't this be leaking ?
+
+ // Set provided members
+ for (int i=0; i<nmembers; ++i) {
+ as_value member_value =
env->pop();
+ tu_stringi member_name =
env->pop().to_tu_stringi();
+
new_obj_ptr->set_member(member_name, member_value);
+ }
+
// @@ TODO
- log_error("todo opcode: %02X\n",
action_id);
+ //log_error("checkme opcode: %02X\n",
action_id);
+
+ as_value new_obj;
+
new_obj.set_as_object_interface(new_obj_ptr.get_ptr());
+
+ //env->drop(nmembers*2);
+ env->push(new_obj);
+
break;
}
case SWF::ACTION_TYPEOF: // type of