You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by pr...@apache.org on 2005/11/23 22:41:17 UTC
svn commit: r348571 -
/webservices/axis/trunk/c/src/xml/xerces/XMLParserXerces.cpp
Author: prestonf
Date: Wed Nov 23 13:41:12 2005
New Revision: 348571
URL: http://svn.apache.org/viewcvs?rev=348571&view=rev
Log:
This fixes problems with Any.
Modified:
webservices/axis/trunk/c/src/xml/xerces/XMLParserXerces.cpp
Modified: webservices/axis/trunk/c/src/xml/xerces/XMLParserXerces.cpp
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/src/xml/xerces/XMLParserXerces.cpp?rev=348571&r1=348570&r2=348571&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/xml/xerces/XMLParserXerces.cpp (original)
+++ webservices/axis/trunk/c/src/xml/xerces/XMLParserXerces.cpp Wed Nov 23 13:41:12 2005
@@ -170,19 +170,36 @@
m_bFirstParsed = true;
}
- m_Xhandler.freeElement();
- while (true)
+ if(!m_bPeeked)
+ {
+ m_Xhandler.freeElement();
+ }
+
+ while (true)
{
AnyElement* elem = m_Xhandler.getAnyElement();
if (!elem)
{
- bCanParseMore = m_pParser->parseNext(m_ScanToken);
+ if(!m_bPeeked)
+ {
+ bCanParseMore = m_pParser->parseNext(m_ScanToken);
+ }
+ else
+ {
+ m_bPeeked = false;
+ bCanParseMore = true;
+ }
+
elem = m_Xhandler.getAnyElement();
}
if (elem)
{
m_Xhandler.setGetPrefixMappings(false);
- return elem;
+
+ if( m_bPeeked )
+ m_bPeeked = false;
+
+ return elem;
}
else if (AXIS_FAIL == m_Xhandler.getStatus()) return NULL;
else if (!bCanParseMore) return NULL;