Author: scantor
Date: Sat Feb 28 02:26:43 2015
New Revision: 1662888
URL: http://svn.apache.org/r1662888
Log:
XERCESC-1978
Modified:
xerces/c/branches/xerces-3.1/src/xercesc/dom/impl/DOMDocumentImpl.hpp
Modified: xerces/c/branches/xerces-3.1/src/xercesc/dom/impl/DOMDocumentImpl.hpp
URL:
http://svn.apache.org/viewvc/xerces/c/branches/xerces-3.1/src/xercesc/dom/impl/DOMDocumentImpl.hpp?rev=1662888&r1=1662887&r2=1662888&view=diff
==============================================================================
--- xerces/c/branches/xerces-3.1/src/xercesc/dom/impl/DOMDocumentImpl.hpp
(original)
+++ xerces/c/branches/xerces-3.1/src/xercesc/dom/impl/DOMDocumentImpl.hpp Sat
Feb 28 02:26:43 2015
@@ -380,7 +380,8 @@ inline const XMLCh* DOMDocumentImpl::ge
// declared in the struct, so we don't need to add one again to
// account for the trailing null.
//
- XMLSize_t sizeToAllocate = sizeof(DOMStringPoolEntry) +
XMLString::stringLen(in)*sizeof(XMLCh);
+ XMLSize_t n = XMLString::stringLen(in);
+ XMLSize_t sizeToAllocate = sizeof(DOMStringPoolEntry) + n*sizeof(XMLCh);
*pspe = spe = (DOMStringPoolEntry *)allocate(sizeToAllocate);
spe->fNext = 0;
XMLString::copyString((XMLCh*)spe->fString, in);
@@ -388,8 +389,7 @@ inline const XMLCh* DOMDocumentImpl::ge
return spe->fString;
}
-inline const XMLCh* DOMDocumentImpl::
-getPooledNString(const XMLCh *in, XMLSize_t n)
+inline const XMLCh* DOMDocumentImpl::getPooledNString(const XMLCh *in,
XMLSize_t n)
{
if (in == 0)
return 0;
@@ -401,7 +401,7 @@ getPooledNString(const XMLCh *in, XMLSiz
pspe = &fNameTable[inHash];
while (*pspe != 0)
{
- if (XMLString::equalsN((*pspe)->fString, in, n))
+ if (XMLString::stringLen((*pspe)->fString) == n &&
XMLString::equalsN((*pspe)->fString, in, n))
return (*pspe)->fString;
pspe = &((*pspe)->fNext);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]