[Top][All Lists]
[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
- [Gnash-commit] gnash ChangeLog server/asobj/Object.cpp,
Sandro Santilli <=