CVSROOT: /sources/gnash Module name: gnash Changes by: Sandro Santilli <strk> 07/11/15 20:13:21
Modified files: . : ChangeLog server/vm : ASHandlers.cpp testsuite/swfdec: PASSING Log message: (ActionDivide): return the string '#ERROR#' when a division by 0 is requested in SWF<5. Fixes crash-0.5.3-divide-by-zero.swf in swfdec testsuite. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.4870&r2=1.4871 http://cvs.savannah.gnu.org/viewcvs/gnash/server/vm/ASHandlers.cpp?cvsroot=gnash&r1=1.150&r2=1.151 http://cvs.savannah.gnu.org/viewcvs/gnash/testsuite/swfdec/PASSING?cvsroot=gnash&r1=1.59&r2=1.60 Patches: Index: ChangeLog =================================================================== RCS file: /sources/gnash/gnash/ChangeLog,v retrieving revision 1.4870 retrieving revision 1.4871 diff -u -b -r1.4870 -r1.4871 --- ChangeLog 15 Nov 2007 19:41:33 -0000 1.4870 +++ ChangeLog 15 Nov 2007 20:13:20 -0000 1.4871 @@ -1,5 +1,11 @@ 2007-11-15 Sandro Santilli <[EMAIL PROTECTED]> + * server/vm/ASHandlers.cpp (ActionDivide): return the string '#ERROR#' + when a division by 0 is requested in SWF<5. + * testsuite/swfdec/PASSING: crash-0.5.3-divide-by-zero.swf succeeds. + +2007-11-15 Sandro Santilli <[EMAIL PROTECTED]> + * server/as_value.cpp (to_string): for MOVIECLIP types return the empty string when dangling. * testsuite/actionscript.all/MovieClip.as: add test for convertion Index: server/vm/ASHandlers.cpp =================================================================== RCS file: /sources/gnash/gnash/server/vm/ASHandlers.cpp,v retrieving revision 1.150 retrieving revision 1.151 diff -u -b -r1.150 -r1.151 --- server/vm/ASHandlers.cpp 11 Nov 2007 19:14:35 -0000 1.150 +++ server/vm/ASHandlers.cpp 15 Nov 2007 20:13:21 -0000 1.151 @@ -17,7 +17,7 @@ // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA // -/* $Id: ASHandlers.cpp,v 1.150 2007/11/11 19:14:35 strk Exp $ */ +/* $Id: ASHandlers.cpp,v 1.151 2007/11/15 20:13:21 strk Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -773,7 +773,15 @@ thread.ensureStack(2); double operand1 = env.top(1).to_number(&env); double operand2 = env.top(0).to_number(&env); + + if (operand2 == 0 && env.get_version() < 5) + { + env.top(1).set_string("#ERROR#"); + } + else + { env.top(1) = operand1 / operand2; + } env.drop(1); } Index: testsuite/swfdec/PASSING =================================================================== RCS file: /sources/gnash/gnash/testsuite/swfdec/PASSING,v retrieving revision 1.59 retrieving revision 1.60 diff -u -b -r1.59 -r1.60 --- testsuite/swfdec/PASSING 15 Nov 2007 19:41:34 -0000 1.59 +++ testsuite/swfdec/PASSING 15 Nov 2007 20:13:21 -0000 1.60 @@ -78,6 +78,7 @@ crash-0.5.2-cvs-too-many-changes.swf:552f6cf630c1a09dbb6e3496718f1e28 crash-0.5.2-new-netstream.swf:23c4ae4b9fc857989369d8436de8ea13 crash-0.5.2-startdrag.swf:d17b405f3831c0b5c0a050bb20e361ac +crash-0.5.3-divide-by-zero.swf:79d16e2d803b530416e31d2fac1d7623 crash-0.5.3-text-field-root-variable-5.swf:bfb3dc8421411036abf01688693f11de crash-0.5.3-text-field-root-variable-6.swf:523e410878987c9437735d64419cc5a2 crash-0.5.3-text-field-root-variable-7.swf:d01c94174267217b7856d88b74c1c5a4 _______________________________________________ Gnash-commit mailing list Gnash-commit@gnu.org http://lists.gnu.org/mailman/listinfo/gnash-commit