You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by am...@apache.org on 2004/12/23 15:21:27 UTC
cvs commit: xml-xerces/c/src/xercesc/internal IGXMLScanner.cpp SGXMLScanner.cpp XSAXMLScanner.cpp
amassari 2004/12/23 06:21:27
Modified: c/src/xercesc/internal IGXMLScanner.cpp SGXMLScanner.cpp
XSAXMLScanner.cpp
Log:
Don't use the content of fPrefixBuf inside the end tag handler, as it is modified by the nearest start tag: instead retrieve the current prefix from the end tag string [jira#1308]
Revision Changes Path
1.82 +6 -1 xml-xerces/c/src/xercesc/internal/IGXMLScanner.cpp
Index: IGXMLScanner.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/IGXMLScanner.cpp,v
retrieving revision 1.81
retrieving revision 1.82
diff -u -r1.81 -r1.82
--- IGXMLScanner.cpp 7 Dec 2004 19:45:43 -0000 1.81
+++ IGXMLScanner.cpp 23 Dec 2004 14:21:27 -0000 1.82
@@ -1157,6 +1157,11 @@
// If we have a doc handler, tell it about the end tag
if (fDocHandler)
{
+ int prefixColonPos = XMLString::indexOf(elemName, chColon);
+ if (prefixColonPos == -1)
+ fPrefixBuf.reset();
+ else
+ fPrefixBuf.set(elemName, prefixColonPos);
fDocHandler->endElement
(
*topElem->fThisElement
1.103 +6 -1 xml-xerces/c/src/xercesc/internal/SGXMLScanner.cpp
Index: SGXMLScanner.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/SGXMLScanner.cpp,v
retrieving revision 1.102
retrieving revision 1.103
diff -u -r1.102 -r1.103
--- SGXMLScanner.cpp 9 Dec 2004 20:31:39 -0000 1.102
+++ SGXMLScanner.cpp 23 Dec 2004 14:21:27 -0000 1.103
@@ -1013,6 +1013,11 @@
// If we have a doc handler, tell it about the end tag
if (fDocHandler)
{
+ int prefixColonPos = XMLString::indexOf(elemName, chColon);
+ if (prefixColonPos == -1)
+ fPrefixBuf.reset();
+ else
+ fPrefixBuf.set(elemName, prefixColonPos);
fDocHandler->endElement
(
*topElem->fThisElement
1.3 +6 -1 xml-xerces/c/src/xercesc/internal/XSAXMLScanner.cpp
Index: XSAXMLScanner.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/XSAXMLScanner.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- XSAXMLScanner.cpp 29 Sep 2004 23:25:42 -0000 1.2
+++ XSAXMLScanner.cpp 23 Dec 2004 14:21:27 -0000 1.3
@@ -158,6 +158,11 @@
// If we have a doc handler, tell it about the end tag
if (fDocHandler)
{
+ int prefixColonPos = XMLString::indexOf(elemName, chColon);
+ if (prefixColonPos == -1)
+ fPrefixBuf.reset();
+ else
+ fPrefixBuf.set(elemName, prefixColonPos);
fDocHandler->endElement
(
*topElem->fThisElement, uriId, isRoot, fPrefixBuf.getRawBuffer()
---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org