[Top][All Lists]
[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