gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] gnash ChangeLog server/parser/shape_character_d...


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog server/parser/shape_character_d...
Date: Wed, 23 Jan 2008 14:22:00 +0000

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 <address@hidden>
 
+       * 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 <address@hidden>
+
        * 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 <address@hidden> 
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




reply via email to

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