[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, 27 Nov 2006 21:54:10 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Sandro Santilli <strk> 06/11/27 21:54:10
Modified files:
. : ChangeLog
server/parser : sprite_definition.cpp
Log message:
* server/parser/sprite_definition.cpp (read):
don't choke if DEFINESPRITE tag contains more
SHOWFRAME then expected.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.1790&r2=1.1791
http://cvs.savannah.gnu.org/viewcvs/gnash/server/parser/sprite_definition.cpp?cvsroot=gnash&r1=1.4&r2=1.5
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.1790
retrieving revision 1.1791
diff -u -b -r1.1790 -r1.1791
--- ChangeLog 27 Nov 2006 15:57:51 -0000 1.1790
+++ ChangeLog 27 Nov 2006 21:54:10 -0000 1.1791
@@ -1,5 +1,8 @@
2006-11-27 Sandro Santilli <address@hidden>
+ * server/parser/sprite_definition.cpp (read):
+ don't choke if DEFINESPRITE tag contains more
+ SHOWFRAME then expected.
* server/: gnash.h, impl.cpp: export the movie creation
functions taking additional argument to control
start of the loader thread.
Index: server/parser/sprite_definition.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/parser/sprite_definition.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- server/parser/sprite_definition.cpp 29 Oct 2006 18:34:16 -0000 1.4
+++ server/parser/sprite_definition.cpp 27 Nov 2006 21:54:10 -0000 1.5
@@ -101,10 +101,34 @@
if (tag_type == SWF::SHOWFRAME)
{
// show frame tag -- advance to the next frame.
+ ++m_loading_frame;
+
IF_VERBOSE_PARSE (
- log_parse(" show_frame (sprite)");
+ log_parse(" show_frame "
+ SIZET_FMT "/" SIZET_FMT
+ " (sprite)",
+ m_loading_frame,
+ m_frame_count);
+ );
+
+ if ( m_loading_frame == m_frame_count )
+ {
+ // better break then sorry
+
+ in->close_tag();
+ while ( in->open_tag() != SWF::END )
+ {
+ IF_VERBOSE_MALFORMED_SWF(
+ log_warning("last SHOWFRAME of a "
+ "DEFINESPRITE tag "
+ "isn't followed by an END."
+ " Seeking to next END tag.");
);
- m_loading_frame++;
+ in->close_tag();
+ }
+
+ break;
+ }
}
else if (_tag_loaders.get(tag_type, &lf))
{