[Top][All Lists]
[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);
+ );
}
}
- [Gnash-commit] gnash ChangeLog server/parser/sprite_definition...,
Sandro Santilli <=