[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash ChangeLog server/swf.h server/vm/ASHandle...
From: |
Sandro Santilli |
Subject: |
[Gnash-commit] gnash ChangeLog server/swf.h server/vm/ASHandle... |
Date: |
Tue, 27 Nov 2007 22:06:03 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Sandro Santilli <strk> 07/11/27 22:06:03
Modified files:
. : ChangeLog
server : swf.h
server/vm : ASHandlers.cpp ASHandlers.h
Log message:
stub support for fscommand2 (swf7 opcode)
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.4987&r2=1.4988
http://cvs.savannah.gnu.org/viewcvs/gnash/server/swf.h?cvsroot=gnash&r1=1.42&r2=1.43
http://cvs.savannah.gnu.org/viewcvs/gnash/server/vm/ASHandlers.cpp?cvsroot=gnash&r1=1.163&r2=1.164
http://cvs.savannah.gnu.org/viewcvs/gnash/server/vm/ASHandlers.h?cvsroot=gnash&r1=1.11&r2=1.12
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.4987
retrieving revision 1.4988
diff -u -b -r1.4987 -r1.4988
--- ChangeLog 27 Nov 2007 20:37:52 -0000 1.4987
+++ ChangeLog 27 Nov 2007 22:06:02 -0000 1.4988
@@ -1,5 +1,11 @@
2007-11-27 Sandro Santilli <address@hidden>
+ * server/swf.h: define ACTION_FSCOMMAND2
+ * server/vm/ASHandlers.{cpp,h}: stub support for fscommand2
+ (SWF7 opcode)
+
+2007-11-27 Sandro Santilli <address@hidden>
+
* server/movie_root.{cpp,h}: notify mouse events to _global.Mouse
listeners
* server/asobj/Mouse.cpp: initialize _global.Mouse as an
Index: server/swf.h
===================================================================
RCS file: /sources/gnash/gnash/server/swf.h,v
retrieving revision 1.42
retrieving revision 1.43
diff -u -b -r1.42 -r1.43
--- server/swf.h 24 Nov 2007 08:23:47 -0000 1.42
+++ server/swf.h 27 Nov 2007 22:06:03 -0000 1.43
@@ -247,6 +247,21 @@
///
ACTION_IMPLEMENTSOP = 0x2C,
+ /// SWF7
+ ///
+ /// This action executes an fscommand.
+ /// Stack In:
+ /// i1 -- number of arguments (int)
+ /// s2 -- command string
+ /// [s3..sn] -- arguments, as many as specified in i1
+ /// Stack Out:
+ /// not known
+ ///
+ /// See:
+ /// http://sswf.sourceforge.net/SWFalexref.html#action_fscommand2
+ ///
+ ACTION_FSCOMMAND2 = 0x2D,
+
ACTION_RANDOM = 0x30,
ACTION_MBLENGTH = 0x31,
ACTION_ORD = 0x32,
Index: server/vm/ASHandlers.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/vm/ASHandlers.cpp,v
retrieving revision 1.163
retrieving revision 1.164
diff -u -b -r1.163 -r1.164
--- server/vm/ASHandlers.cpp 27 Nov 2007 17:36:40 -0000 1.163
+++ server/vm/ASHandlers.cpp 27 Nov 2007 22:06:03 -0000 1.164
@@ -17,7 +17,7 @@
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
//
-/* $Id: ASHandlers.cpp,v 1.163 2007/11/27 17:36:40 strk Exp $ */
+/* $Id: ASHandlers.cpp,v 1.164 2007/11/27 22:06:03 strk Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -101,7 +101,7 @@
static void unsupported_action_handler(ActionExec& thread)
{
- log_error(_("Unsupported action handler invoked, code at pc is %d"),
thread.code[thread.pc]);
+ log_error(_("Unsupported action handler invoked, code at pc is %x"),
thread.code[thread.pc]);
}
ActionHandler::ActionHandler()
@@ -293,6 +293,8 @@
string("ActionCastOp"), SWFHandlers::ActionCastOp);
handlers[ACTION_IMPLEMENTSOP] = ActionHandler(ACTION_IMPLEMENTSOP,
string("ActionImplementsOp"), SWFHandlers::ActionImplementsOp);
+ handlers[ACTION_FSCOMMAND2] = ActionHandler(ACTION_FSCOMMAND2,
+ string("ActionFscommand2"), SWFHandlers::ActionFscommand2);
handlers[ACTION_RANDOM] = ActionHandler(ACTION_RANDOM,
string("ActionRandom"), SWFHandlers::ActionRandom);
handlers[ACTION_MBLENGTH] = ActionHandler(ACTION_MBLENGTH,
@@ -1437,6 +1439,41 @@
}
void
+SWFHandlers::ActionFscommand2(ActionExec& thread)
+{
+// GNASH_REPORT_FUNCTION;
+
+ assert(thread.code[thread.pc] == SWF::ACTION_FSCOMMAND2); // 0x0E
+
+ as_environment& env = thread.env;
+
+ unsigned int off=0;
+
+ thread.ensureStack(1); // nargs
+ unsigned int nargs = env.top(off++).to_int();
+
+ thread.ensureStack(nargs); // nargs, cmdname
+ std::string cmd = env.top(off++).to_string();
+
+ std::stringstream ss;
+ ss << cmd << "(";
+ for (unsigned int i=1; i<nargs; ++i)
+ {
+ as_value arg = env.top(off++);
+ if ( i ) ss << ", ";
+ ss << arg.to_debug_string();
+ }
+ ss << ")";
+
+ log_unimpl("fscommand2:%s", ss.str().c_str());
+
+ // TODO: check wheter or not we should drop anything from
+ // the stack, some reports and the Canonical tests
+ // suggest we shoudn't
+
+}
+
+void
SWFHandlers::ActionRandom(ActionExec& thread)
{
// GNASH_REPORT_FUNCTION;
Index: server/vm/ASHandlers.h
===================================================================
RCS file: /sources/gnash/gnash/server/vm/ASHandlers.h,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- server/vm/ASHandlers.h 25 Oct 2007 08:10:15 -0000 1.11
+++ server/vm/ASHandlers.h 27 Nov 2007 22:06:03 -0000 1.12
@@ -209,6 +209,7 @@
static void ActionThrow(ActionExec& thread);
static void ActionCastOp(ActionExec& thread);
static void ActionImplementsOp(ActionExec& thread);
+ static void ActionFscommand2(ActionExec& thread);
static void ActionRandom(ActionExec& thread);
static void ActionMbLength(ActionExec& thread);
static void ActionOrd(ActionExec& thread);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] gnash ChangeLog server/swf.h server/vm/ASHandle...,
Sandro Santilli <=