[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: |
Thu, 04 Jan 2007 23:12:08 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Sandro Santilli <strk> 07/01/04 23:12:08
Modified files:
. : ChangeLog
server/asobj : Object.cpp
Log message:
* server/asobj/Object.cpp: stubbed registerClass().
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.2047&r2=1.2048
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/Object.cpp?cvsroot=gnash&r1=1.8&r2=1.9
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.2047
retrieving revision 1.2048
diff -u -b -r1.2047 -r1.2048
--- ChangeLog 4 Jan 2007 23:11:03 -0000 1.2047
+++ ChangeLog 4 Jan 2007 23:12:08 -0000 1.2048
@@ -1,5 +1,6 @@
2007-01-04 Sandro Santilli <address@hidden>
+ * server/asobj/Object.cpp: stubbed registerClass().
* server/sprite_instance.cpp (movieclip_ctor): allow 'new MovieClip'.
* testsuite/actionscript.all/MovieClip.as: test 'new MovieClip'.
* server/impl.cpp, server/swf/tag_loaders.{h,cpp}:
Index: server/asobj/Object.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/Object.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- server/asobj/Object.cpp 11 Nov 2006 22:44:54 -0000 1.8
+++ server/asobj/Object.cpp 4 Jan 2007 23:12:08 -0000 1.9
@@ -18,7 +18,7 @@
//
//
-/* $Id: Object.cpp,v 1.8 2006/11/11 22:44:54 strk Exp $ */
+/* $Id: Object.cpp,v 1.9 2007/01/04 23:12:08 strk Exp $ */
// Implementation of ActionScript Object class.
@@ -37,7 +37,8 @@
namespace gnash {
// Forward declarations
-void object_addproperty(const fn_call&);
+static void object_addproperty(const fn_call&);
+static void object_registerClass(const fn_call&);
static void
@@ -46,6 +47,8 @@
// FIXME: add Object interface here:
o.set_member("addProperty", &object_addproperty);
o.set_member_flags("addProperty", 1); // hidden
+ o.set_member("registerClass", &object_registerClass);
+ o.set_member_flags("registerClass", 1); // hidden
}
static as_object*
@@ -130,7 +133,7 @@
}
-void
+static void
object_addproperty(const fn_call& fn)
{
assert(fn.this_ptr);
@@ -183,4 +186,52 @@
fn.result->set_bool(result);
}
+static void
+object_registerClass(const fn_call& fn)
+{
+ assert(fn.this_ptr);
+ as_object* obj = fn.this_ptr;
+
+ if ( fn.nargs != 2 )
+ {
+ IF_VERBOSE_ASCODING_ERRORS(
+ log_warning("Invalid call to Object.registerClass() - "
+ "wrong number of args: %d, expected 2.",
+ fn.nargs);
+ );
+ fn.result->set_bool(false);
+ return;
+ }
+
+ std::string symbolid = fn.arg(0).to_std_string();
+ if ( symbolid.empty() )
+ {
+ IF_VERBOSE_ASCODING_ERRORS(
+ log_warning("Invalid call to Object.registerClass() - "
+ "empty symbol id");
+ );
+ fn.result->set_bool(false);
+ return;
+ }
+
+ as_function* theclass = fn.arg(1).to_as_function();
+ if ( ! theclass )
+ {
+ IF_VERBOSE_ASCODING_ERRORS(
+ log_warning("Invalid call to Object.registerClass() - "
+ "class is not a function");
+ );
+ fn.result->set_bool(false);
+ return;
+ }
+
+ // TODO: do something with these values:
+ // - resolve the symbolid to obtain a movie_definition
+ // - call movie_definition::registerClass(as_function)
+ //
+ //
+ log_warning("Object.registerClass() only stubbed (FIXME!)");
+ fn.result->set_bool(false);
+}
+
} // namespace gnash
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] gnash ChangeLog server/asobj/Object.cpp,
Sandro Santilli <=