[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash ChangeLog server/ActionExec.cpp server/Gl...
From: |
Sandro Santilli |
Subject: |
[Gnash-commit] gnash ChangeLog server/ActionExec.cpp server/Gl... |
Date: |
Sat, 01 Jul 2006 10:00:29 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Sandro Santilli <strk> 06/07/01 10:00:29
Modified files:
. : ChangeLog
server : ActionExec.cpp Global.cpp as_environment.cpp
as_environment.h sprite_instance.cpp
server/swf : ASHandlers.cpp
Log message:
* server/as_environment.cpp, server/as_environment.h:
added a get_version() method to hide implementation.
* server/ActionExec.cpp, server/sprite_instance.cpp,
server/swf/ASHandlers.cpp: use env.get_version()
rather then own-rolled version extracter.
* server/Global.cpp: tolerate (don't abort) unimplemented
ASSetPropFlags with non-object 'props' argument.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.453&r2=1.454
http://cvs.savannah.gnu.org/viewcvs/gnash/server/ActionExec.cpp?cvsroot=gnash&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/gnash/server/Global.cpp?cvsroot=gnash&r1=1.14&r2=1.15
http://cvs.savannah.gnu.org/viewcvs/gnash/server/as_environment.cpp?cvsroot=gnash&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/gnash/server/as_environment.h?cvsroot=gnash&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/gnash/server/sprite_instance.cpp?cvsroot=gnash&r1=1.15&r2=1.16
http://cvs.savannah.gnu.org/viewcvs/gnash/server/swf/ASHandlers.cpp?cvsroot=gnash&r1=1.26&r2=1.27
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.453
retrieving revision 1.454
diff -u -b -r1.453 -r1.454
--- ChangeLog 1 Jul 2006 01:34:03 -0000 1.453
+++ ChangeLog 1 Jul 2006 10:00:29 -0000 1.454
@@ -1,3 +1,13 @@
+2006-07-01 Sandro Santilli <address@hidden>
+
+ * server/as_environment.cpp, server/as_environment.h:
+ added a get_version() method to hide implementation.
+ * server/ActionExec.cpp, server/sprite_instance.cpp,
+ server/swf/ASHandlers.cpp: use env.get_version()
+ rather then own-rolled version extracter.
+ * server/Global.cpp: tolerate (don't abort) unimplemented
+ ASSetPropFlags with non-object 'props' argument.
+
2006-06-30 Sandro Santilli <address@hidden>
* server/swf/ASHandlers.cpp (ActionGetUrl): fixed read
Index: server/ActionExec.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/ActionExec.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- server/ActionExec.cpp 30 Jun 2006 00:31:31 -0000 1.7
+++ server/ActionExec.cpp 1 Jul 2006 10:00:29 -0000 1.8
@@ -64,7 +64,7 @@
// too much information for my tastes. I really want just
// to see how stack changes while executing actions...
// --strk Fri Jun 30 02:28:46 CEST 2006
-//#define DEBUG_STACK 1
+#define DEBUG_STACK 1
#endif
using namespace gnash;
Index: server/Global.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/Global.cpp,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- server/Global.cpp 30 Jun 2006 00:32:40 -0000 1.14
+++ server/Global.cpp 1 Jul 2006 10:00:29 -0000 1.15
@@ -362,27 +362,41 @@
fn.result->set_int(result);
}
+// ASSetPropFlags function
static void
as_global_assetpropflags(const fn_call& fn)
- // ASSetPropFlags function
{
- const int version =
fn.env->get_target()->get_movie_definition()->get_version();
+ int version = fn.env->get_version();
// Check the arguments
assert(fn.nargs == 3 || fn.nargs == 4);
assert((version == 5) ? (fn.nargs == 3) : true);
- if (fn.arg(0).get_type() == as_value::UNDEFINED)
- {
- return;
- }
+ // ASSetPropFlags(obj, props, n, allowFalse=false)
// object
as_object* obj = fn.arg(0).to_object();
+ if ( ! obj )
+ {
+ log_warning("Invalid call to ASSSetPropFlags: "
+ "object argument is not an object: %s",
+ fn.arg(0).to_string());
+ return;
+ }
// list of child names
+
as_object* props = fn.arg(1).to_object();
- if (props == NULL) {
+ if (props == NULL)
+ {
+ // second argument can either be an array or
+ // a comma-delimited string.
+ // see: http://www.flashguru.co.uk/assetpropflags/
+ log_error("ASSetPropFlags unimplemented for non-array prop"
+ " argument (%s)", fn.arg(1).to_string());
+
+ return; // be nice, dont' abort
+
// tulrich: this fires in test_ASSetPropFlags -- is it correct?
assert(fn.arg(1).get_type() == as_value::NULLTYPE);
}
@@ -456,7 +470,9 @@
++it;
}
}
- } else {
+ }
+ else
+ {
as_object* object = obj;
as_object* object_props = props;
Index: server/as_environment.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/as_environment.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- server/as_environment.cpp 28 Jun 2006 23:27:44 -0000 1.6
+++ server/as_environment.cpp 1 Jul 2006 10:00:29 -0000 1.7
@@ -478,6 +478,14 @@
return env;
}
+int
+as_environment::get_version() const
+{
+ sprite_instance* si=m_target;
+ movie_definition* md=si->get_movie_definition();
+ return md->get_version();
+}
+
};
Index: server/as_environment.h
===================================================================
RCS file: /sources/gnash/gnash/server/as_environment.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- server/as_environment.h 30 Jun 2006 00:12:54 -0000 1.8
+++ server/as_environment.h 1 Jul 2006 10:00:29 -0000 1.9
@@ -225,9 +225,18 @@
out << std::endl;
}
+ /// Return the SWF version we're running for.
+ //
+ /// TODO: check what to return when playing multiple
+ /// movies with different versions: should we always
+ /// return version of the topmost (first-loaded) movie
+ /// or of the target (as I think we're doing now) ?
+ ///
+ int get_version() const;
+
private:
- /// Movie target. (change to sprite_instance)
+ /// Movie target.
sprite_instance* m_target;
int find_local(const tu_string& varname) const;
Index: server/sprite_instance.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/sprite_instance.cpp,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -b -r1.15 -r1.16
--- server/sprite_instance.cpp 30 Jun 2006 16:03:24 -0000 1.15
+++ server/sprite_instance.cpp 1 Jul 2006 10:00:29 -0000 1.16
@@ -869,10 +869,8 @@
else if (name == "_level0"
|| name == "_root")
{
- log_error("Must complete refactoring of movie classes");
//we must return the _root movie as a sprite_instance
return get_root_movie();
- //return m_root->m_movie.get_ptr();
}
// See if we have a match on the display list.
Index: server/swf/ASHandlers.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/swf/ASHandlers.cpp,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -b -r1.26 -r1.27
--- server/swf/ASHandlers.cpp 1 Jul 2006 01:34:03 -0000 1.26
+++ server/swf/ASHandlers.cpp 1 Jul 2006 10:00:29 -0000 1.27
@@ -801,7 +801,7 @@
// GNASH_REPORT_FUNCTION;
as_environment& env = thread.env;
ensure_stack(env, 1);
- int version = env.get_target()->get_movie_definition()->get_version();
+ int version = env.get_version();
env.top(0).set_int(env.top(0).to_tu_string_versioned(version).utf8_length());
}
@@ -813,7 +813,7 @@
ensure_stack(env, 3); // size, base, string
int size = int(env.top(0).to_number());
int base = int(env.top(1).to_number()) - 1; // 1-based indices
- int version = env.get_target()->get_movie_definition()->get_version();
+ int version = env.get_version();
const tu_string& str = env.top(2).to_tu_string_versioned(version);
// Keep base within range.
@@ -939,7 +939,7 @@
ensure_stack(env, 2); // two strings
- int version = env.get_target()->get_movie_definition()->get_version();
+ int version = env.get_version();
env.top(1).convert_to_string_versioned(version);
env.top(1).string_concat(env.top(0).to_tu_string_versioned(version));
env.drop(1);
@@ -1999,7 +1999,7 @@
ensure_stack(env, 2);
- int version = env.get_target()->get_movie_definition()->get_version();
+ int version = env.get_version();
if (env.top(0).get_type() == as_value::STRING
|| env.top(1).get_type() == as_value::STRING) {
env.top(1).convert_to_string_versioned(version);
@@ -2053,7 +2053,7 @@
// GNASH_REPORT_FUNCTION;
as_environment& env = thread.env;
ensure_stack(env, 1);
- int version = env.get_target()->get_movie_definition()->get_version();
+ int version = env.get_version();
env.top(0).convert_to_string_versioned(version);
}
@@ -2086,7 +2086,7 @@
ensure_stack(env, 2); // member name, target
// Some corner case behaviors depend on the SWF file version.
- int version = env.get_target()->get_movie_definition()->get_version();
+ int version = env.get_version();
as_value member_name = env.top(0);
as_value target = env.top(1);
@@ -2178,7 +2178,7 @@
as_value result;
// Some corner case behaviors depend on the SWF file version.
- //int version = env.get_target()->get_movie_definition()->get_version();
+ //int version = env.get_version();
// Get name of the method
const tu_string &method_name = env.top(0).to_tu_string();
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] gnash ChangeLog server/ActionExec.cpp server/Gl...,
Sandro Santilli <=