[Expat-bugs] [ expat-Bugs-1109116 ] Optimize implementation of
XML_ParserReset
SourceForge.net
noreply at sourceforge.net
Tue Jan 25 17:27:17 CET 2005
Bugs item #1109116, was opened at 2005-01-25 09:46
Message generated for change (Comment added) made by fdrake
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=110127&aid=1109116&group_id=10127
Category: None
Group: Feature Request
Status: Open
Resolution: None
Priority: 5
Submitted By: Nobody/Anonymous (nobody)
Assigned to: Karl Waclawek (kwaclaw)
Summary: Optimize implementation of XML_ParserReset
Initial Comment:
The current implementation of XML_ParserReset sets the
user data pointer and the handlers to NULL. So, the
user has to set these again. At a first glance, there
is no need to do things this way. Instead,
XML_ParserReset could reset the internal parser data
only and leave user data and handlers untouched. So
after this function has been called, the parser would
be ready to start parsing a new document (just like
stated in the documentation of this function). To
completely reset the parser, the user would still be
able to call XML_ParserFree and XML_ParserCreate.
Stefan Letz.
stefan.letz <at> de.ibm.com
----------------------------------------------------------------------
>Comment By: Fred L. Drake, Jr. (fdrake)
Date: 2005-01-25 11:27
Message:
Logged In: YES
user_id=3066
While I don't expect this change to affect most
applications, it may well affect several in unexpected
ways that are difficult to debug.
For applications which set the handlers and never change
them, it's not a problem, and does save some overhead when
initializing the reset parser.
A different approach to using the handlers, however, is to
change the handlers as information is loaded. This is
certainly done in at least one language binding (Python's
PyExpat) to deal with error conditions; it's also a
capability exposed to the user (which I know I've used).
I think a new name should be assigned for the new
semantics; there's no reason we can't support both.
----------------------------------------------------------------------
Comment By: Karl Waclawek (kwaclaw)
Date: 2005-01-25 10:20
Message:
Logged In: YES
user_id=290026
I have created a patch against current CVS (xmlparse.c).
XML_ParseReset will not clear any of the settings
caused by these API functions:
- all call-back handler setters (XML_Set...Handler)
- XML_SetUserData
- XML_SetBase
- XML_UseParserAshandlerArg
- XML_SetExternalEntityRefHandlerArg
Please try the patch and report any problems it may cause.
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=110127&aid=1109116&group_id=10127
More information about the Expat-bugs
mailing list