amassari 2004/09/14 13:10:20
Modified: c/src/xercesc/dom/impl DOMAttrNSImpl.cpp
DOMElementNSImpl.cpp
Log:
setPrefix doesn't allow an empty string as a valid prefix (jira#1248)
Revision Changes Path
1.16 +8 -7 xml-xerces/c/src/xercesc/dom/impl/DOMAttrNSImpl.cpp
Index: DOMAttrNSImpl.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/dom/impl/DOMAttrNSImpl.cpp,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- DOMAttrNSImpl.cpp 8 Sep 2004 13:55:51 -0000 1.15
+++ DOMAttrNSImpl.cpp 14 Sep 2004 20:10:20 -0000 1.16
@@ -78,24 +78,25 @@
void DOMAttrNSImpl::setPrefix(const XMLCh *prefix)
{
- const XMLCh * xml = DOMNodeImpl::getXmlString();
- const XMLCh * xmlURI = DOMNodeImpl::getXmlURIString();
const XMLCh * xmlns = DOMNodeImpl::getXmlnsString();
- const XMLCh * xmlnsURI = DOMNodeImpl::getXmlnsURIString();
if (fNode.isReadOnly())
throw DOMException(DOMException::NO_MODIFICATION_ALLOWED_ERR, 0,
GetDOMNodeMemoryManager);
if (fNamespaceURI == 0 || fNamespaceURI[0] == chNull ||
XMLString::equals(fLocalName, xmlns))
throw DOMException(DOMException::NAMESPACE_ERR, 0, GetDOMNodeMemoryManager);
- if (prefix != 0 && !((DOMDocumentImpl
*)this->getOwnerDocument())->isXMLName(prefix))
- throw DOMException(DOMException::INVALID_CHARACTER_ERR,0,
GetDOMNodeMemoryManager);
-
if (prefix == 0 || prefix[0] == chNull) {
fName = fLocalName;
fPrefix = 0;
return;
}
+
+ if (!((DOMDocumentImpl *)this->getOwnerDocument())->isXMLName(prefix))
+ throw DOMException(DOMException::INVALID_CHARACTER_ERR,0,
GetDOMNodeMemoryManager);
+
+ const XMLCh * xml = DOMNodeImpl::getXmlString();
+ const XMLCh * xmlURI = DOMNodeImpl::getXmlURIString();
+ const XMLCh * xmlnsURI = DOMNodeImpl::getXmlnsURIString();
if (XMLString::equals(prefix, xml)&&
!XMLString::equals(fNamespaceURI, xmlURI)||
1.20 +7 -7 xml-xerces/c/src/xercesc/dom/impl/DOMElementNSImpl.cpp
Index: DOMElementNSImpl.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/dom/impl/DOMElementNSImpl.cpp,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- DOMElementNSImpl.cpp 8 Sep 2004 13:55:51 -0000 1.19
+++ DOMElementNSImpl.cpp 14 Sep 2004 20:10:20 -0000 1.20
@@ -109,14 +109,8 @@
void DOMElementNSImpl::setPrefix(const XMLCh *prefix)
{
- const XMLCh * xml = DOMNodeImpl::getXmlString();
- const XMLCh * xmlURI = DOMNodeImpl::getXmlURIString();
-
if (fNode.isReadOnly())
throw DOMException(DOMException::NO_MODIFICATION_ALLOWED_ERR, 0,
GetDOMNodeMemoryManager);
- if(prefix != 0 && !((DOMDocumentImpl
*)this->getOwnerDocument())->isXMLName(prefix))
- throw DOMException(DOMException::INVALID_CHARACTER_ERR,0,
GetDOMNodeMemoryManager);
-
if (fNamespaceURI == 0 || fNamespaceURI[0] == chNull)
throw DOMException(DOMException::NAMESPACE_ERR, 0, GetDOMNodeMemoryManager);
@@ -125,6 +119,12 @@
fName = fLocalName;
return;
}
+
+ if(!((DOMDocumentImpl *)this->getOwnerDocument())->isXMLName(prefix))
+ throw DOMException(DOMException::INVALID_CHARACTER_ERR,0,
GetDOMNodeMemoryManager);
+
+ const XMLCh * xml = DOMNodeImpl::getXmlString();
+ const XMLCh * xmlURI = DOMNodeImpl::getXmlURIString();
if (XMLString::equals(prefix, xml) &&
!XMLString::equals(fNamespaceURI, xmlURI))
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]