gnash-commit
[Top][All Lists]
Advanced

[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() );




reply via email to

[Prev in Thread] Current Thread [Next in Thread]