gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] gnash ChangeLog server/asobj/Object.cpp


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog server/asobj/Object.cpp
Date: Tue, 24 Oct 2006 15:51:47 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  06/10/24 15:51:47

Modified files:
        .              : ChangeLog 
        server/asobj   : Object.cpp 

Log message:
        * server/asobj/Object.cpp: added stub for addProperty() AS function.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.1386&r2=1.1387
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/Object.cpp?cvsroot=gnash&r1=1.2&r2=1.3

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.1386
retrieving revision 1.1387
diff -u -b -r1.1386 -r1.1387
--- ChangeLog   24 Oct 2006 15:20:52 -0000      1.1386
+++ ChangeLog   24 Oct 2006 15:51:47 -0000      1.1387
@@ -1,5 +1,6 @@
 2006-10-25 Sandro Santilli <address@hidden>
 
+       * server/asobj/Object.cpp: added stub for addProperty() AS function.
        * server/asobj/Object.{cpp,h}: added init_object_instance() function
          to create an instance of the Object as class.
        * server/swf/ASHandlers.cpp (ActionInitObject): use the new

Index: server/asobj/Object.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/Object.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- server/asobj/Object.cpp     24 Oct 2006 15:20:52 -0000      1.2
+++ server/asobj/Object.cpp     24 Oct 2006 15:51:47 -0000      1.3
@@ -36,7 +36,7 @@
 //
 //
 
-/* $Id: Object.cpp,v 1.2 2006/10/24 15:20:52 strk Exp $ */
+/* $Id: Object.cpp,v 1.3 2006/10/24 15:51:47 strk Exp $ */
 
 // Implementation of ActionScript Object class.
 
@@ -49,16 +49,20 @@
 
 #include "log.h"
 
+#include <string>
 #include <sstream>
 
 namespace gnash {
 
 // Forward declarations
+void object_addproperty(const fn_call&);
+
 
 static void
-attachObjectInterface(as_object& /*o*/)
+attachObjectInterface(as_object& o)
 {
        // FIXME: add Object interface here:
+       o.set_member("addProperty", &object_addproperty);
 }
 
 static as_object*
@@ -143,4 +147,53 @@
 
 }
   
+void
+object_addproperty(const fn_call& fn)
+{
+       if ( fn.nargs != 3 )
+       {
+               log_warning("Invalid call to Object.addProperty() - "
+                       "wrong number of args: %d, expected 3 "
+                       "(property name, getter function, setter function)",
+                       fn.nargs);
+               fn.result->set_bool(false);
+               return;
+       }
+
+       std::string propname = fn.arg(0).to_string();
+       if ( propname.empty() )
+       {
+               log_warning("Invalid call to Object.addProperty() - "
+                       "empty property name");
+               fn.result->set_bool(false);
+               return;
+       }
+
+       as_function* setter = fn.arg(1).to_as_function();
+       if ( ! setter )
+       {
+               log_warning("Invalid call to Object.addProperty() - "
+                       "setter is not an AS function");
+               fn.result->set_bool(false);
+               return;
+       }
+
+       as_function* getter = fn.arg(2).to_as_function();
+       if ( ! getter )
+       {
+               log_warning("Invalid call to Object.addProperty() - "
+                       "getter is not an AS function");
+               fn.result->set_bool(false);
+               return;
+       }
+
+
+       // Now, we'd need a new interface of as_object to
+       // actually register the new property...
+       // TODO: add it to as_object class
+
+       log_error("Object.addProperty(): unimplemented");
+       fn.result->set_bool(false);
+}
+  
 } // namespace gnash




reply via email to

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