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: Mon, 14 May 2007 17:57:45 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  07/05/14 17:57:45

Modified files:
        .              : ChangeLog 
        server/parser  : shape_character_def.cpp 

Log message:
                * backend/render_handler_agg_style.h (is_solid): check argument
                  with an assertion before accessing the m_styles vector.
                * server/parser/shape_character_def.cpp (read): don't set line 
and
                  fill styles to unavailable values. Drop a weird an likely 
bogus
                  modification of tag_type when  a flagHasNewStyle is set and 
the
                  tag is DEFINESHAPE.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.3204&r2=1.3205
http://cvs.savannah.gnu.org/viewcvs/gnash/server/parser/shape_character_def.cpp?cvsroot=gnash&r1=1.22&r2=1.23

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.3204
retrieving revision 1.3205
diff -u -b -r1.3204 -r1.3205
--- ChangeLog   14 May 2007 17:26:05 -0000      1.3204
+++ ChangeLog   14 May 2007 17:57:45 -0000      1.3205
@@ -1,5 +1,14 @@
 2007-05-14 Sandro Santilli <address@hidden>
 
+       * backend/render_handler_agg_style.h (is_solid): check argument
+         with an assertion before accessing the m_styles vector.
+       * server/parser/shape_character_def.cpp (read): don't set line and
+         fill styles to unavailable values. Drop a weird an likely bogus
+         modification of tag_type when  a flagHasNewStyle is set and the
+         tag is DEFINESHAPE.
+
+2007-05-14 Sandro Santilli <address@hidden>
+
        * utilities/Makefile.am: don't set LDFLAGS twice.
        * server/parser/shape_character_def.{cpp,h}: add ShapeRecordFlags
          enum to use symbolic names while parsing. Don't change tag type

Index: server/parser/shape_character_def.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/parser/shape_character_def.cpp,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -b -r1.22 -r1.23
--- server/parser/shape_character_def.cpp       14 May 2007 17:23:15 -0000      
1.22
+++ server/parser/shape_character_def.cpp       14 May 2007 17:57:45 -0000      
1.23
@@ -17,7 +17,7 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 //
 
-/* $Id: shape_character_def.cpp,v 1.22 2007/05/14 17:23:15 strk Exp $ */
+/* $Id: shape_character_def.cpp,v 1.23 2007/05/14 17:57:45 strk Exp $ */
 
 // Based on the public domain shape.cpp of Thatcher Ulrich <address@hidden> 
2003
 
@@ -95,7 +95,6 @@
                try
                {
                        fs.read(in, tag_type, m);
-                       styles.push_back(fs);
                }
                catch (ParserException& e)
                {
@@ -103,6 +102,9 @@
                                log_swferror("%s", e.what());
                        );
                }
+               // Push a style anyway, so any path referring to
+               // it still finds it..
+               styles.push_back(fs);
        }
 
 }
@@ -263,13 +265,21 @@
                if (style > 0) {
                    style += fill_base;
                }
+               if ( style < m_fill_styles.size() )
+               {
                current_path.setLeftFill(style);
-               IF_VERBOSE_PARSE
-               (
+                       IF_VERBOSE_PARSE(
                if (SHAPE_LOG) {
                    log_parse(_("  shape_character read: fill0 (left) = %d"), 
current_path.getLeftFill());
                }
+                       )
+               }
+               else
+               {
+                       IF_VERBOSE_MALFORMED_SWF(
+                       log_swferror(_("Unknown fill style %d in 
fillStyle0Change record "), style);
                );
+               }
 
            }
            if ((flags & flagFillStyle1Change) && num_fill_bits > 0)
@@ -285,13 +295,22 @@
                if (style > 0) {
                    style += fill_base;
                }
+               if ( style < m_fill_styles.size() )
+               {
                current_path.setRightFill(style); // getRightFill() = style;
                IF_VERBOSE_PARSE (
                if (SHAPE_LOG) {
                    log_parse(_("  shape_character read: fill1 (right) = %d"), 
current_path.getRightFill());
                }
+                       )
+               }
+               else
+               {
+                       IF_VERBOSE_MALFORMED_SWF(
+                       log_swferror(_("Unknown fill style %d in 
fillStyle1Change record "), style);
                );
            }
+           }
            if ((flags & flagLineStyleChange) && num_line_bits > 0)
            {
                // line_style_change = 1;
@@ -305,22 +324,33 @@
                if (style > 0) {
                    style += line_base;
                }
+               if ( style < m_line_styles.size() )
+               {
                current_path.setLineStyle(style);
                IF_VERBOSE_PARSE (
                if (SHAPE_LOG)
                {
                    log_parse(_("  shape_character_read: line = %d"), 
current_path.getLineStyle());
                }
+                       )
+               }
+               else
+               {
+                       IF_VERBOSE_MALFORMED_SWF(
+                       log_swferror(_("Unknown line style %d in 
lienStyleChange record "), style);
                );
            }
+           }
            if (flags & flagHasNewStyles)
            {
-               IF_VERBOSE_MALFORMED_SWF(
                if (tag_type == SWF::DEFINESHAPE)
                {
+                       IF_VERBOSE_MALFORMED_SWF(
                        log_swferror("unexpected HasNewStyle flag in a 
DEFINESHAPE tag shape record");
-               }
                )
+                       // Used to be tag_type += SWF::DEFINESHAPE2, but
+                       // I can't belive any such thing could be correct...
+               }
 
                IF_VERBOSE_PARSE (
                log_parse(_("  shape_character read: more fill styles"));




reply via email to

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