You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.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;