CVSROOT: /sources/gnash Module name: gnash Changes by: Sandro Santilli <strk> 08/01/23 14:21:59
Modified files: . : ChangeLog server/parser : shape_character_def.cpp Log message: only skip parsing shapes with 0 line/fill bits if the tag is a DEFINEFONT*. Fixes bug #22000 and a secondary bug #21923. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.5477&r2=1.5478 http://cvs.savannah.gnu.org/viewcvs/gnash/server/parser/shape_character_def.cpp?cvsroot=gnash&r1=1.61&r2=1.62 Patches: Index: ChangeLog =================================================================== RCS file: /sources/gnash/gnash/ChangeLog,v retrieving revision 1.5477 retrieving revision 1.5478 diff -u -b -r1.5477 -r1.5478 --- ChangeLog 23 Jan 2008 12:39:36 -0000 1.5477 +++ ChangeLog 23 Jan 2008 14:21:58 -0000 1.5478 @@ -1,5 +1,12 @@ 2008-01-23 Sandro Santilli <[EMAIL PROTECTED]> + * server/parser/shape_character_def.cpp (read): only + skip parsing shapes with 0 line/fill bits if the tag + is a DEFINEFONT*. Fixes bug #22000 and a secondary + bug #21923. + +2008-01-23 Sandro Santilli <[EMAIL PROTECTED]> + * testsuite/misc-ming.all/masks_test2runner.cpp: successes. * server/character.h (isMaskLayer): dynamic masks are not mask layers. Index: server/parser/shape_character_def.cpp =================================================================== RCS file: /sources/gnash/gnash/server/parser/shape_character_def.cpp,v retrieving revision 1.61 retrieving revision 1.62 diff -u -b -r1.61 -r1.62 --- server/parser/shape_character_def.cpp 21 Jan 2008 20:56:01 -0000 1.61 +++ server/parser/shape_character_def.cpp 23 Jan 2008 14:21:59 -0000 1.62 @@ -17,7 +17,7 @@ // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA // -/* $Id: shape_character_def.cpp,v 1.61 2008/01/21 20:56:01 rsavoye Exp $ */ +/* $Id: shape_character_def.cpp,v 1.62 2008/01/23 14:21:59 strk Exp $ */ // Based on the public domain shape.cpp of Thatcher Ulrich <[EMAIL PROTECTED]> 2003 @@ -229,19 +229,26 @@ { /// When reading font glyphs it happens to read 1 byte /// past end boundary of a glyph due to fill/line bits being + /// zero. /// - /// Returning here seems to break morphs - /// See https://savannah.gnu.org/bugs/?21747 + /// Generally returning here seems to break morphs: + /// http://savannah.gnu.org/bugs/?21747 + /// And other normal shapes: + /// http://savannah.gnu.org/bugs/?21923 + /// http://savannah.gnu.org/bugs/?22000 /// /// So for now we only return if NOT reading a morph shape. /// Pretty ugly... till next bug report. /// /// - if (tag_type != SWF::DEFINEMORPHSHAPE - && tag_type != SWF::DEFINEMORPHSHAPE2 - && tag_type != SWF::DEFINEMORPHSHAPE2_) + if (tag_type == SWF::DEFINEFONT || tag_type == SWF::DEFINEFONT2 || tag_type == SWF::DEFINEFONT3) + { + // better log something, so we have an hint + // if something is broken + log_debug("Skipping glyph read, being fill and line bits zero. SWF tag is %d.", tag_type); return; } + } // These are state variables that keep the // current position & style of the shape _______________________________________________ Gnash-commit mailing list Gnash-commit@gnu.org http://lists.gnu.org/mailman/listinfo/gnash-commit