[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash ChangeLog server/as_environment.cpp serve...
From: |
Sandro Santilli |
Subject: |
[Gnash-commit] gnash ChangeLog server/as_environment.cpp serve... |
Date: |
Fri, 16 Nov 2007 21:28:55 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Sandro Santilli <strk> 07/11/16 21:28:55
Modified files:
. : ChangeLog
server : as_environment.cpp as_object.h character.h
server/vm : ASHandlers.cpp
Log message:
add virtual as_object::to_character() casting method.
(as_environment::find_target) allow characters targets.
Fixes snowman.swf (http://bugs.libming.org/show_bug.cgi?id=41)
(ActionStartDragMovie): unknown target would be an ASerror, not a
generic one.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.4882&r2=1.4883
http://cvs.savannah.gnu.org/viewcvs/gnash/server/as_environment.cpp?cvsroot=gnash&r1=1.108&r2=1.109
http://cvs.savannah.gnu.org/viewcvs/gnash/server/as_object.h?cvsroot=gnash&r1=1.83&r2=1.84
http://cvs.savannah.gnu.org/viewcvs/gnash/server/character.h?cvsroot=gnash&r1=1.109&r2=1.110
http://cvs.savannah.gnu.org/viewcvs/gnash/server/vm/ASHandlers.cpp?cvsroot=gnash&r1=1.152&r2=1.153
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.4882
retrieving revision 1.4883
diff -u -b -r1.4882 -r1.4883
--- ChangeLog 16 Nov 2007 19:43:43 -0000 1.4882
+++ ChangeLog 16 Nov 2007 21:28:53 -0000 1.4883
@@ -1,5 +1,14 @@
2007-11-16 Sandro Santilli <address@hidden>
+ * server/: as_object.h, character.h: add virtual to_character()
+ casting method.
+ * server/as_environment.cpp (find_target): allow characters targets.
+ Fixes snowman.swf (http://bugs.libming.org/show_bug.cgi?id=41)
+ * server/vm/ASHandlers.cpp (ActionStartDragMovie): unknown target
+ would be an ASerror, not a generic one.
+
+2007-11-16 Sandro Santilli <address@hidden>
+
* server/array.h (visitAll): copy the container before executing
arbitrary code while iterating over it. Fixes a memory corruption.
* server/asobj/Key.{cpp,h}: Initialize the Key object as an usual
Index: server/as_environment.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/as_environment.cpp,v
retrieving revision 1.108
retrieving revision 1.109
diff -u -b -r1.108 -r1.109
--- server/as_environment.cpp 14 Nov 2007 22:16:05 -0000 1.108
+++ server/as_environment.cpp 16 Nov 2007 21:28:54 -0000 1.109
@@ -17,7 +17,7 @@
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
//
-/* $Id: as_environment.cpp,v 1.108 2007/11/14 22:16:05 strk Exp $ */
+/* $Id: as_environment.cpp,v 1.109 2007/11/16 21:28:54 strk Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -494,7 +494,7 @@
as_environment::find_target(const std::string& path_in) const
{
as_object* o = find_object(path_in);
- if ( o ) return o->to_movie(); // can be NULL (not a movie)...
+ if ( o ) return o->to_character(); // can be NULL (not a character)...
else return NULL;
}
Index: server/as_object.h
===================================================================
RCS file: /sources/gnash/gnash/server/as_object.h,v
retrieving revision 1.83
retrieving revision 1.84
diff -u -b -r1.83 -r1.84
--- server/as_object.h 16 Nov 2007 07:43:52 -0000 1.83
+++ server/as_object.h 16 Nov 2007 21:28:54 -0000 1.84
@@ -48,6 +48,7 @@
namespace gnash {
class as_function;
class sprite_instance;
+ class character;
class as_environment;
class VM;
class Machine;
@@ -624,6 +625,9 @@
/// Cast to a as_function, or return NULL
virtual as_function* to_function() { return NULL; }
+ /// Cast to a character, or return NULL
+ virtual character* to_character() { return NULL; }
+
/// Return true if this is a Date object.
//
/// This is needed for special handling of Date objects
Index: server/character.h
===================================================================
RCS file: /sources/gnash/gnash/server/character.h,v
retrieving revision 1.109
retrieving revision 1.110
diff -u -b -r1.109 -r1.110
--- server/character.h 16 Nov 2007 07:43:53 -0000 1.109
+++ server/character.h 16 Nov 2007 21:28:54 -0000 1.110
@@ -19,7 +19,7 @@
//
//
-/* $Id: character.h,v 1.109 2007/11/16 07:43:53 zoulunkai Exp $ */
+/* $Id: character.h,v 1.110 2007/11/16 21:28:54 strk Exp $ */
#ifndef GNASH_CHARACTER_H
#define GNASH_CHARACTER_H
@@ -547,6 +547,8 @@
return (m_clip_depth==dynClipDepthValue);
}
+ character* to_character() { return this; }
+
/// Return the character masked by this instance (if any)
character* getMask() const
{
Index: server/vm/ASHandlers.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/vm/ASHandlers.cpp,v
retrieving revision 1.152
retrieving revision 1.153
diff -u -b -r1.152 -r1.153
--- server/vm/ASHandlers.cpp 15 Nov 2007 20:46:40 -0000 1.152
+++ server/vm/ASHandlers.cpp 16 Nov 2007 21:28:54 -0000 1.153
@@ -17,7 +17,7 @@
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
//
-/* $Id: ASHandlers.cpp,v 1.152 2007/11/15 20:46:40 strk Exp $ */
+/* $Id: ASHandlers.cpp,v 1.153 2007/11/16 21:28:54 strk Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -1262,11 +1262,16 @@
drag_state st;
character* tgt = env.find_target(env.top(0).to_string(&env));
- if ( tgt ) {
+ if ( tgt )
+ {
st.setCharacter( tgt );
- } else {
- log_error(_("start_drag of invalid target '%s'"),
+ }
+ else
+ {
+ IF_VERBOSE_ASCODING_ERRORS(
+ log_aserror(_("startDrag: unknown target '%s'"),
env.top(0).to_debug_string().c_str());
+ );
}
st.setLockCentered( env.top(1).to_bool() );