CVSROOT: /sources/gnash Module name: gnash Changes by: Sandro Santilli <strk> 07/11/21 23:18:59
Modified files: . : ChangeLog server : sprite_instance.cpp Log message: Consider frame specs evaluating to 0 as frame labels. Fixes bug #21567 (snoopy_click.swf). CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.4912&r2=1.4913 http://cvs.savannah.gnu.org/viewcvs/gnash/server/sprite_instance.cpp?cvsroot=gnash&r1=1.391&r2=1.392 Patches: Index: ChangeLog =================================================================== RCS file: /sources/gnash/gnash/ChangeLog,v retrieving revision 1.4912 retrieving revision 1.4913 diff -u -b -r1.4912 -r1.4913 --- ChangeLog 21 Nov 2007 22:35:36 -0000 1.4912 +++ ChangeLog 21 Nov 2007 23:18:58 -0000 1.4913 @@ -1,5 +1,11 @@ 2007-11-21 Sandro Santilli <[EMAIL PROTECTED]> + * server/sprite_instance.cpp (get_frame_number): + Consider frame specs evaluating to 0 as frame labels. + Fixes bug #21567 (snoopy_click.swf). + +2007-11-21 Sandro Santilli <[EMAIL PROTECTED]> + * server/vm/ASHandlers.cpp (ActionStringCompare): use versioned string conversion. * testsuite/actionscript.all/ops.as: few null/undefined Index: server/sprite_instance.cpp =================================================================== RCS file: /sources/gnash/gnash/server/sprite_instance.cpp,v retrieving revision 1.391 retrieving revision 1.392 diff -u -b -r1.391 -r1.392 --- server/sprite_instance.cpp 21 Nov 2007 18:08:58 -0000 1.391 +++ server/sprite_instance.cpp 21 Nov 2007 23:18:59 -0000 1.392 @@ -1951,7 +1951,7 @@ //log_debug("get_frame_number(%s), num: %g", frame_spec.to_debug_string().c_str(), num); - if ( ! isfinite(num) || int(num) != num ) + if ( ! isfinite(num) || int(num) != num || num == 0) { bool ret = m_def->get_labeled_frame(fspecStr, frameno); //log_debug("get_labeled_frame(%s) returned %d, frameno is %d", fspecStr.c_str(), ret, frameno); @@ -1959,9 +1959,9 @@ } // TODO: are we sure we shouldn't check for frames labeled with negative numbers ? - if ( num < 1 ) return false; + if ( num < 0 ) return false; - // all frame numbers >= 0 are valid, but a valid frame number may still + // all frame numbers > 0 are valid, but a valid frame number may still // reference a non-exist frame(eg. frameno > total_frames). frameno = size_t(num) - 1; _______________________________________________ Gnash-commit mailing list Gnash-commit@gnu.org http://lists.gnu.org/mailman/listinfo/gnash-commit