gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] gnash ChangeLog server/vm/ASHandlers.cpp testsu...


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog server/vm/ASHandlers.cpp testsu...
Date: Fri, 05 Oct 2007 00:01:39 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  07/10/05 00:01:39

Modified files:
        .              : ChangeLog 
        server/vm      : ASHandlers.cpp 
        testsuite/swfdec: PASSING 

Log message:
                * server/vm/ASHandlers.cpp (ActionSetRegister, ActionPushData):
                  Don't use global registers in a function2 context with local
                  registers.
                * testsuite/swfdec/PASSING: success for register-count.swf and
                  definefunction2-registers-#.swf

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.4530&r2=1.4531
http://cvs.savannah.gnu.org/viewcvs/gnash/server/vm/ASHandlers.cpp?cvsroot=gnash&r1=1.139&r2=1.140
http://cvs.savannah.gnu.org/viewcvs/gnash/testsuite/swfdec/PASSING?cvsroot=gnash&r1=1.35&r2=1.36

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.4530
retrieving revision 1.4531
diff -u -b -r1.4530 -r1.4531
--- ChangeLog   4 Oct 2007 23:02:34 -0000       1.4530
+++ ChangeLog   5 Oct 2007 00:01:38 -0000       1.4531
@@ -1,5 +1,13 @@
 2007-10-05 Sandro Santilli <address@hidden>
 
+       * server/vm/ASHandlers.cpp (ActionSetRegister, ActionPushData):
+         Don't use global registers in a function2 context with local
+         registers.
+       * testsuite/swfdec/PASSING: success for register-count.swf and
+         definefunction2-registers-#.swf
+
+2007-10-05 Sandro Santilli <address@hidden>
+
        * server/vm/ASHandlers.cpp (CommonGetUrl): case-insensitive
          'fscommand' matching. 
 

Index: server/vm/ASHandlers.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/vm/ASHandlers.cpp,v
retrieving revision 1.139
retrieving revision 1.140
diff -u -b -r1.139 -r1.140
--- server/vm/ASHandlers.cpp    4 Oct 2007 23:02:35 -0000       1.139
+++ server/vm/ASHandlers.cpp    5 Oct 2007 00:01:38 -0000       1.140
@@ -17,7 +17,7 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 //
 
-/* $Id: ASHandlers.cpp,v 1.139 2007/10/04 23:02:35 strk Exp $ */
+/* $Id: ASHandlers.cpp,v 1.140 2007/10/05 00:01:38 strk Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -1803,16 +1803,27 @@
                        {
                                uint8_t reg = code[3 + i];
                                ++i;
-                               if ( thread.isFunction2() && reg < 
env.num_local_registers() )
+                               if ( thread.isFunction2() && 
env.num_local_registers() )
+                               {
+                                       if ( reg < env.num_local_registers() )
                                {
                                        env.push(env.local_register(reg));
                                }
+                                       else
+                                       {
+                                               env.push(as_value());
+                                               IF_VERBOSE_MALFORMED_SWF(
+                                               log_swferror(_("register %d "
+                                                       "out of local registers 
bounds (0.."SIZET_FMT")!"), reg, env.num_local_registers());
+                                               );
+                                       }
+                               }
                                else if (reg >= 4)
                                {
                                        env.push(as_value());
                                        IF_VERBOSE_MALFORMED_SWF(
                                        log_swferror(_("register %d "
-                                               "out of bounds"), reg);
+                                               "out of global registers 
bounds"), reg);
                                        );
                                }
                                else
@@ -3834,7 +3845,9 @@
        uint8_t reg = code[thread.pc + 3];
 
        // Save top of stack in specified register.
-       if ( thread.isFunction2() && reg < env.num_local_registers() )
+       if ( thread.isFunction2() && env.num_local_registers() )
+       {
+               if ( reg < env.num_local_registers() )
        {
                env.local_register(reg) = env.top(0);
 
@@ -3843,6 +3856,13 @@
                        reg, env.top(0).to_debug_string().c_str());
                );
        }
+               else
+               {
+                       IF_VERBOSE_MALFORMED_SWF(
+                       log_swferror(_("store_register[%d] -- register out of 
local registers bounds (0.." SIZET_FMT ")!"), reg, env.num_local_registers());
+                       );
+               }
+       }
        else if (reg < 4)
        {
                env.global_register(reg) = env.top(0);
@@ -3856,7 +3876,7 @@
        else
        {
                IF_VERBOSE_MALFORMED_SWF(
-               log_swferror(_("store_register[%d] -- register out of 
bounds!"), reg);
+               log_swferror(_("store_register[%d] -- register out of global 
registers bounds!"), reg);
                );
        }
 

Index: testsuite/swfdec/PASSING
===================================================================
RCS file: /sources/gnash/gnash/testsuite/swfdec/PASSING,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -b -r1.35 -r1.36
--- testsuite/swfdec/PASSING    4 Oct 2007 22:05:01 -0000       1.35
+++ testsuite/swfdec/PASSING    5 Oct 2007 00:01:39 -0000       1.36
@@ -261,3 +261,8 @@
 stack-overflow-7.swf
 definefunction2-arguments-registers.swf
 definefunction2-arguments.swf
+register-count.swf
+definefunction2-registers-5.swf
+definefunction2-registers-6.swf
+definefunction2-registers-7.swf
+definefunction2-registers-8.swf




reply via email to

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