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