gnash-commit
[Top][All Lists]
Advanced

[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




reply via email to

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