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: Wed, 26 Sep 2007 20:52:03 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  07/09/26 20:52:03

Modified files:
        .              : ChangeLog 
        server         : as_environment.cpp sprite_instance.cpp 
        server/vm      : ActionExec.cpp 

Log message:
                * server/as_environment.cpp (get_variable_raw): don't handle 
_root and
                  _levelX in any special way, they are just sprite members !
                * server/sprite_instance.cpp (get_member): _root doesn't exist 
if
                  we're unloaded.
                * server/vm/ActionExec.cpp (call operator): drop opcode-level
                  unloaded guard. Fixes bugs #21069 (feed.swf) and #20996
                  (curveball.swf) w/out reopening #20974 (sonic.swf).
                  Changes in as_environment.cpp and sprite_instance.cpp above
                  do the rest for misc-ming and misc-swfc tests..

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.4429&r2=1.4430
http://cvs.savannah.gnu.org/viewcvs/gnash/server/as_environment.cpp?cvsroot=gnash&r1=1.91&r2=1.92
http://cvs.savannah.gnu.org/viewcvs/gnash/server/sprite_instance.cpp?cvsroot=gnash&r1=1.359&r2=1.360
http://cvs.savannah.gnu.org/viewcvs/gnash/server/vm/ActionExec.cpp?cvsroot=gnash&r1=1.49&r2=1.50

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.4429
retrieving revision 1.4430
diff -u -b -r1.4429 -r1.4430
--- ChangeLog   26 Sep 2007 19:46:28 -0000      1.4429
+++ ChangeLog   26 Sep 2007 20:52:02 -0000      1.4430
@@ -1,5 +1,17 @@
 2007-09-26 Sandro Santilli <address@hidden>
 
+       * server/as_environment.cpp (get_variable_raw): don't handle _root and
+         _levelX in any special way, they are just sprite members !
+       * server/sprite_instance.cpp (get_member): _root doesn't exist if
+         we're unloaded.
+       * server/vm/ActionExec.cpp (call operator): drop opcode-level
+         unloaded guard. Fixes bugs #21069 (feed.swf) and #20996
+         (curveball.swf) w/out reopening #20974 (sonic.swf). 
+         Changes in as_environment.cpp and sprite_instance.cpp above
+         do the rest for misc-ming and misc-swfc tests..
+
+2007-09-26 Sandro Santilli <address@hidden>
+
        * server/parser/morph2_character_def.cpp (read):
          Don't print malformed swf errors if number of paths in defining
          shapes don't match: only edges matter.

Index: server/as_environment.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/as_environment.cpp,v
retrieving revision 1.91
retrieving revision 1.92
diff -u -b -r1.91 -r1.92
--- server/as_environment.cpp   26 Sep 2007 12:54:18 -0000      1.91
+++ server/as_environment.cpp   26 Sep 2007 20:52:02 -0000      1.92
@@ -17,7 +17,7 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 //
 
-/* $Id: as_environment.cpp,v 1.91 2007/09/26 12:54:18 strk Exp $ */
+/* $Id: as_environment.cpp,v 1.92 2007/09/26 20:52:02 strk Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -139,6 +139,8 @@
        return val;
     }
 
+#if 0 // NO special support for _root and _levelX, all should be done by 
target !
+      // see movieclip_destruction_test3, where _root becomes undefined if 
target is unloaded
     // Check built-in constants.
     if (varname == "_root") 
     { 
@@ -151,6 +153,7 @@
        unsigned int levelno = atoi(varname.c_str()+6);
        return VM::get().getRoot().getLevel(levelno).get();
     }
+#endif
 
     VM& vm = VM::get();
     as_object* global = vm.getGlobal();

Index: server/sprite_instance.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/sprite_instance.cpp,v
retrieving revision 1.359
retrieving revision 1.360
diff -u -b -r1.359 -r1.360
--- server/sprite_instance.cpp  25 Sep 2007 14:57:05 -0000      1.359
+++ server/sprite_instance.cpp  26 Sep 2007 20:52:02 -0000      1.360
@@ -1741,6 +1741,8 @@
        //
        if (name == "_root" )
        {
+               if ( isUnloaded() ) return false; // see 
movieclip_destruction_test3.sc
+
                // TODO: handle lockroot
                val->set_as_object( VM::get().getRoot().get_root_movie() );
                return true;

Index: server/vm/ActionExec.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/vm/ActionExec.cpp,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -b -r1.49 -r1.50
--- server/vm/ActionExec.cpp    26 Sep 2007 11:30:43 -0000      1.49
+++ server/vm/ActionExec.cpp    26 Sep 2007 20:52:02 -0000      1.50
@@ -17,7 +17,7 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 //
 
-/* $Id: ActionExec.cpp,v 1.49 2007/09/26 11:30:43 strk Exp $ */
+/* $Id: ActionExec.cpp,v 1.50 2007/09/26 20:52:02 strk Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -284,11 +284,13 @@
                        continue; // Walk up the try chain if necessary.
                } // end of try checking.
 
+#if 0 // See bugs: #20974, #21069, #20996.
                if ( _abortOnUnload && _original_target->isUnloaded() )
                {
                        log_debug("Target of action_buffer unloaded during 
execution, discarding %d remaining opcodes", stop_pc-pc);
                        break;
                }
+#endif
 
            // Cleanup any expired "with" blocks.
            while ( ! with_stack.empty() && pc >= with_stack.back().end_pc() ) {




reply via email to

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