gnash-commit
[Top][All Lists]
Advanced

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

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


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog server/parser/sprite_definition...
Date: Mon, 03 Mar 2008 17:45:02 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  08/03/03 17:45:02

Modified files:
        .              : ChangeLog 
        server/parser  : sprite_definition.cpp sprite_definition.h 
        server/swf     : tag_loaders.cpp 

Log message:
                * server/parser/sprite_definition.{cpp,h}: delegate
                  exports and dictionary chars to containing movie
                  definition. Fixes bug #22468.
                * server/swf/tag_loaders.cpp: log malformed SWF for
                  export tags inside define sprite.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.5786&r2=1.5787
http://cvs.savannah.gnu.org/viewcvs/gnash/server/parser/sprite_definition.cpp?cvsroot=gnash&r1=1.27&r2=1.28
http://cvs.savannah.gnu.org/viewcvs/gnash/server/parser/sprite_definition.h?cvsroot=gnash&r1=1.38&r2=1.39
http://cvs.savannah.gnu.org/viewcvs/gnash/server/swf/tag_loaders.cpp?cvsroot=gnash&r1=1.186&r2=1.187

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.5786
retrieving revision 1.5787
diff -u -b -r1.5786 -r1.5787
--- ChangeLog   3 Mar 2008 16:52:28 -0000       1.5786
+++ ChangeLog   3 Mar 2008 17:45:00 -0000       1.5787
@@ -1,3 +1,11 @@
+2008-03-03 Sandro Santilli <address@hidden>
+
+       * server/parser/sprite_definition.{cpp,h}: delegate
+         exports and dictionary chars to containing movie
+         definition. Fixes bug #22468.
+       * server/swf/tag_loaders.cpp: log malformed SWF for
+         export tags inside define sprite.
+
 2008-03-03 Timo Jyrinki <address@hidden>
 
        * gui/gnash.cpp, utilities/: dumpshm.cpp,

Index: server/parser/sprite_definition.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/parser/sprite_definition.cpp,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -b -r1.27 -r1.28
--- server/parser/sprite_definition.cpp 19 Feb 2008 19:20:56 -0000      1.27
+++ server/parser/sprite_definition.cpp 3 Mar 2008 17:45:01 -0000       1.28
@@ -84,14 +84,6 @@
 
                SWF::TagLoadersTable::loader_function lf = NULL;
 
-               IF_VERBOSE_MALFORMED_SWF(
-               if (tag_type == SWF::DEFINESPRITE)
-               {
-                       log_swferror(_("DefineSprite tag inside sprite "
-                               "definition"));
-               }
-               );
-
                if (tag_type == SWF::END)
                 {
                        if (in->get_position() != tag_end)

Index: server/parser/sprite_definition.h
===================================================================
RCS file: /sources/gnash/gnash/server/parser/sprite_definition.h,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -b -r1.38 -r1.39
--- server/parser/sprite_definition.h   19 Feb 2008 19:20:56 -0000      1.38
+++ server/parser/sprite_definition.h   3 Mar 2008 17:45:01 -0000       1.39
@@ -241,13 +241,11 @@
        }
 
 
-       /// Overridden just for complaining  about malformed SWF
-       virtual void export_resource(const std::string& /*symbol*/,
-                       resource* /*res*/)
-       {
-               IF_VERBOSE_MALFORMED_SWF (
-               log_swferror(_("Can't export from sprite"));
-               );
+       /// Delegate call to associated root movie
+       virtual void export_resource(const std::string& sym,
+                       resource* res)
+       {
+               m_movie_def->export_resource(sym, res);
        }
 
        /// Delegate call to associated root movie
@@ -265,18 +263,10 @@
            return m_movie_def->get_character_def(id);
        }
 
-       /// Overridden just for complaining  about malformed SWF
-       //
-       /// Calls to this function should only be made when
-       /// an invalid SWF is being read, as it would mean
-       /// that a Definition tag is been found as part of
-       /// a Sprite definition
-       ///
-       virtual void add_character(int /*id*/, character_def* /*ch*/)
+       /// Delegate call to associated root movie
+       virtual void add_character(int id, character_def* ch)
        {
-               IF_VERBOSE_MALFORMED_SWF (
-               log_swferror(_("add_character tag appears in sprite tags"));
-               );
+               m_movie_def->add_character(id, ch);
        }
 
        // Create a (mutable) instance of our definition.  The

Index: server/swf/tag_loaders.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/swf/tag_loaders.cpp,v
retrieving revision 1.186
retrieving revision 1.187
diff -u -b -r1.186 -r1.187
--- server/swf/tag_loaders.cpp  19 Feb 2008 19:20:56 -0000      1.186
+++ server/swf/tag_loaders.cpp  3 Mar 2008 17:45:01 -0000       1.187
@@ -17,7 +17,7 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 //
 
-/* $Id: tag_loaders.cpp,v 1.186 2008/02/19 19:20:56 bwy Exp $ */
+/* $Id: tag_loaders.cpp,v 1.187 2008/03/03 17:45:01 strk Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "gnashconfig.h"
@@ -902,13 +902,14 @@
     );
 
     // A DEFINESPRITE tag as part of a DEFINESPRITE
-    // would be a malformed SWF
+    // would be a malformed SWF, anyway to be compatible
+    // we should still allow that. See bug #22468.
+    IF_VERBOSE_MALFORMED_SWF(
     if ( ! dynamic_cast<movie_def_impl*>(m) )
     {
-       IF_VERBOSE_MALFORMED_SWF(
-           log_swferror(_("nested DEFINESPRITE tags"));
-       );
+           log_swferror(_("Nested DEFINESPRITE tags. Will add to top-level 
characters dictionary."));
     }
+    );
 
     // will automatically read the sprite
     sprite_definition* ch = new sprite_definition(m, in);
@@ -991,6 +992,17 @@
        log_parse(_("  export: count = %d"), count);
     );
 
+    // An EXPORT tag as part of a DEFINESPRITE
+    // would be a malformed SWF, anyway to be compatible
+    // we should still allow that. See bug #22468.
+    IF_VERBOSE_MALFORMED_SWF(
+    if ( ! dynamic_cast<movie_def_impl*>(m) )
+    {
+       log_swferror(_("EXPORT tag inside DEFINESPRITE. Will export in 
top-level symbol table."));
+    }
+    );
+
+
     // Read the exports.
     for (int i = 0; i < count; i++)
     {
@@ -1018,9 +1030,11 @@
        }
        else
        {
-           log_error(_("don't know how to export resource '%s' "
+           IF_VERBOSE_MALFORMED_SWF(
+           log_swferror(_("don't know how to export resource '%s' "
                        "with id %d (can't find that id)"),
                      symbolName.c_str(), id);
+            );
        }
 
     }




reply via email to

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