[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: |
Tue, 04 Sep 2007 22:15:58 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Sandro Santilli <strk> 07/09/04 22:15:58
Modified files:
. : ChangeLog
server/parser : sprite_definition.cpp
Log message:
* server/parser/sprite_definition.cpp (read): simplify handling
of
malformed sprite definition (last SHOWFRAME not followed by
END).
Fixes high CPU use and inresponsiveness while playing
gnashcrash.swf.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.4220&r2=1.4221
http://cvs.savannah.gnu.org/viewcvs/gnash/server/parser/sprite_definition.cpp?cvsroot=gnash&r1=1.17&r2=1.18
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.4220
retrieving revision 1.4221
diff -u -b -r1.4220 -r1.4221
--- ChangeLog 4 Sep 2007 21:50:21 -0000 1.4220
+++ ChangeLog 4 Sep 2007 22:15:56 -0000 1.4221
@@ -1,5 +1,12 @@
2007-09-04 Sandro Santilli <address@hidden>
+ * server/parser/sprite_definition.cpp (read): simplify handling of
+ malformed sprite definition (last SHOWFRAME not followed by END).
+ Fixes high CPU use and inresponsiveness while playing
+ gnashcrash.swf.
+
+2007-09-04 Sandro Santilli <address@hidden>
+
* server/character.{cpp,h}: add hasEventHandler() and queueEvent()
methods. Implement ::unload by queuing the UNLOAD event (not its
handlers
Index: server/parser/sprite_definition.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/parser/sprite_definition.cpp,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -b -r1.17 -r1.18
--- server/parser/sprite_definition.cpp 1 Jul 2007 10:54:34 -0000 1.17
+++ server/parser/sprite_definition.cpp 4 Sep 2007 22:15:57 -0000 1.18
@@ -86,6 +86,8 @@
{
SWF::tag_type tag_type = in->open_tag();
+parse_tag:
+
SWF::TagLoadersTable::loader_function lf = NULL;
IF_VERBOSE_MALFORMED_SWF(
@@ -118,18 +120,17 @@
// better break then sorry
in->close_tag();
- while ( in->open_tag() != SWF::END )
+ if ( in->open_tag() != SWF::END )
{
IF_VERBOSE_MALFORMED_SWF(
log_swferror(_("last SHOWFRAME of a "
"DEFINESPRITE tag "
"isn't followed by an END."
- " Seeking to next END tag."));
+ " Stopping for safety."));
);
in->close_tag();
+ return;
}
-
- break;
}
}
else if (_tag_loaders.get(tag_type, &lf))
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] gnash ChangeLog server/parser/sprite_definition...,
Sandro Santilli <=