You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by bo...@apache.org on 2008/07/21 12:15:17 UTC
svn commit: r678381 - /xerces/c/trunk/src/xercesc/dom/impl/
Author: borisk
Date: Mon Jul 21 03:15:01 2008
New Revision: 678381
URL: http://svn.apache.org/viewvc?rev=678381&view=rev
Log:
Remove repetitive calls to the getOwnerDocument() virtual function and in some
cases use the data member directly. Put DOMStringPool functionality directly
into DOMDocumentImpl, make getPooledString() inline.
Modified:
xerces/c/trunk/src/xercesc/dom/impl/DOMAttrImpl.cpp
xerces/c/trunk/src/xercesc/dom/impl/DOMAttrImpl.hpp
xerces/c/trunk/src/xercesc/dom/impl/DOMAttrMapImpl.cpp
xerces/c/trunk/src/xercesc/dom/impl/DOMAttrNSImpl.cpp
xerces/c/trunk/src/xercesc/dom/impl/DOMCDATASectionImpl.cpp
xerces/c/trunk/src/xercesc/dom/impl/DOMCharacterDataImpl.cpp
xerces/c/trunk/src/xercesc/dom/impl/DOMCommentImpl.cpp
xerces/c/trunk/src/xercesc/dom/impl/DOMDeepNodeListImpl.cpp
xerces/c/trunk/src/xercesc/dom/impl/DOMDocumentImpl.cpp
xerces/c/trunk/src/xercesc/dom/impl/DOMDocumentImpl.hpp
xerces/c/trunk/src/xercesc/dom/impl/DOMDocumentTypeImpl.cpp
xerces/c/trunk/src/xercesc/dom/impl/DOMElementImpl.cpp
xerces/c/trunk/src/xercesc/dom/impl/DOMElementNSImpl.cpp
xerces/c/trunk/src/xercesc/dom/impl/DOMEntityImpl.cpp
xerces/c/trunk/src/xercesc/dom/impl/DOMEntityReferenceImpl.cpp
xerces/c/trunk/src/xercesc/dom/impl/DOMNamedNodeMapImpl.cpp
xerces/c/trunk/src/xercesc/dom/impl/DOMParentNode.cpp
xerces/c/trunk/src/xercesc/dom/impl/DOMProcessingInstructionImpl.cpp
xerces/c/trunk/src/xercesc/dom/impl/DOMStringPool.cpp
xerces/c/trunk/src/xercesc/dom/impl/DOMStringPool.hpp
xerces/c/trunk/src/xercesc/dom/impl/DOMTextImpl.cpp
xerces/c/trunk/src/xercesc/dom/impl/XSDElementNSImpl.cpp
Modified: xerces/c/trunk/src/xercesc/dom/impl/DOMAttrImpl.cpp
URL: http://svn.apache.org/viewvc/xerces/c/trunk/src/xercesc/dom/impl/DOMAttrImpl.cpp?rev=678381&r1=678380&r2=678381&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/dom/impl/DOMAttrImpl.cpp (original)
+++ xerces/c/trunk/src/xercesc/dom/impl/DOMAttrImpl.cpp Mon Jul 21 03:15:01 2008
@@ -53,7 +53,7 @@
if (other.fNode.isIdAttr())
{
fNode.isIdAttr(true);
- DOMDocumentImpl *doc = (DOMDocumentImpl *)this->getOwnerDocument();
+ DOMDocumentImpl *doc = (DOMDocumentImpl *)fParent.fOwnerDocument;
doc->getNodeIDMap()->add(this);
}
@@ -67,7 +67,7 @@
DOMNode * DOMAttrImpl::cloneNode(bool deep) const
{
- DOMNode* newNode = new (this->getOwnerDocument(), DOMDocumentImpl::ATTR_OBJECT) DOMAttrImpl(*this, deep);
+ DOMNode* newNode = new (fParent.fOwnerDocument, DOMDocumentImpl::ATTR_OBJECT) DOMAttrImpl(*this, deep);
fNode.callUserDataHandlers(DOMUserDataHandler::NODE_CLONED, this, newNode);
return newNode;
}
@@ -124,11 +124,13 @@
// In such case, we have to visit each child to retrieve the text
//
- XMLBuffer buf(1023, ((DOMDocumentImpl *)this->getOwnerDocument())->getMemoryManager());
+ DOMDocumentImpl* doc = (DOMDocumentImpl*)fParent.fOwnerDocument;
+
+ XMLBuffer buf(1023, doc->getMemoryManager());
for (node = fParent.fFirstChild; node != 0; node = castToChildImpl(node)->nextSibling)
getTextValue(node, buf);
- return (XMLCh*) ((DOMDocumentImpl *)this->getOwnerDocument())->getPooledString(buf.getRawBuffer());
+ return doc->getPooledString(buf.getRawBuffer());
}
void DOMAttrImpl::getTextValue(DOMNode* node, XMLBuffer& buf) const
@@ -172,7 +174,7 @@
// then put it back in with the new name. For now, we don't worry
// about what happens if the new name conflicts
//
- DOMDocumentImpl *doc = (DOMDocumentImpl *)getOwnerDocument();
+ DOMDocumentImpl *doc = (DOMDocumentImpl *)fParent.fOwnerDocument;
if (fNode.isIdAttr())
doc->getNodeIDMap()->remove(this);
@@ -223,7 +225,7 @@
if (fNode.isOwned() && !fNode.isToBeReleased())
throw DOMException(DOMException::INVALID_ACCESS_ERR,0, GetDOMNodeMemoryManager);
- DOMDocumentImpl* doc = (DOMDocumentImpl*) getOwnerDocument();
+ DOMDocumentImpl* doc = (DOMDocumentImpl*)fParent.fOwnerDocument;
if (doc) {
fNode.callUserDataHandlers(DOMUserDataHandler::NODE_DELETED, 0, 0);
fParent.release();
@@ -244,7 +246,7 @@
DOMNode* DOMAttrImpl::rename(const XMLCh* namespaceURI, const XMLCh* name)
{
DOMElement* el = getOwnerElement();
- DOMDocumentImpl* doc = (DOMDocumentImpl*) getOwnerDocument();
+ DOMDocumentImpl* doc = (DOMDocumentImpl*)fParent.fOwnerDocument;
if (el)
el->removeAttributeNode(this);
Modified: xerces/c/trunk/src/xercesc/dom/impl/DOMAttrImpl.hpp
URL: http://svn.apache.org/viewvc/xerces/c/trunk/src/xercesc/dom/impl/DOMAttrImpl.hpp?rev=678381&r1=678380&r2=678381&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/dom/impl/DOMAttrImpl.hpp (original)
+++ xerces/c/trunk/src/xercesc/dom/impl/DOMAttrImpl.hpp Mon Jul 21 03:15:01 2008
@@ -5,9 +5,9 @@
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -94,21 +94,21 @@
private:
// -----------------------------------------------------------------------
// Unimplemented constructors and operators
- // -----------------------------------------------------------------------
+ // -----------------------------------------------------------------------
DOMAttrImpl& operator=(const DOMAttrImpl&);
};
inline void DOMAttrImpl::removeAttrFromIDNodeMap()
{
if (fNode.isIdAttr()) {
- ((DOMDocumentImpl *)getOwnerDocument())->getNodeIDMap()->remove(this);
+ ((DOMDocumentImpl *)fParent.fOwnerDocument)->getNodeIDMap()->remove(this);
fNode.isIdAttr(false);
}
}
inline void DOMAttrImpl::addAttrToIDNodeMap()
{
- if (fNode.isIdAttr())
+ if (fNode.isIdAttr())
return;
fNode.isIdAttr(true);
Modified: xerces/c/trunk/src/xercesc/dom/impl/DOMAttrMapImpl.cpp
URL: http://svn.apache.org/viewvc/xerces/c/trunk/src/xercesc/dom/impl/DOMAttrMapImpl.cpp?rev=678381&r1=678380&r2=678381&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/dom/impl/DOMAttrMapImpl.cpp (original)
+++ xerces/c/trunk/src/xercesc/dom/impl/DOMAttrMapImpl.cpp Mon Jul 21 03:15:01 2008
@@ -189,7 +189,7 @@
fNodes->insertElementAt(arg,i);
}
if (previous != 0) {
- castToNodeImpl(previous)->fOwnerNode = fOwnerNode->getOwnerDocument();
+ castToNodeImpl(previous)->fOwnerNode = doc;
castToNodeImpl(previous)->isOwned(false);
}
@@ -264,7 +264,7 @@
fNodes->insertElementAt(arg,i);
}
if (previous != 0) {
- castToNodeImpl(previous)->fOwnerNode = fOwnerNode->getOwnerDocument();
+ castToNodeImpl(previous)->fOwnerNode = doc;
castToNodeImpl(previous)->isOwned(false);
}
Modified: xerces/c/trunk/src/xercesc/dom/impl/DOMAttrNSImpl.cpp
URL: http://svn.apache.org/viewvc/xerces/c/trunk/src/xercesc/dom/impl/DOMAttrNSImpl.cpp?rev=678381&r1=678380&r2=678381&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/dom/impl/DOMAttrNSImpl.cpp (original)
+++ xerces/c/trunk/src/xercesc/dom/impl/DOMAttrNSImpl.cpp Mon Jul 21 03:15:01 2008
@@ -5,9 +5,9 @@
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -57,7 +57,7 @@
DOMNode * DOMAttrNSImpl::cloneNode(bool deep) const
{
- DOMNode* newNode = new (getOwnerDocument(), DOMMemoryManager::ATTR_NS_OBJECT) DOMAttrNSImpl(*this, deep);
+ DOMNode* newNode = new (fParent.fOwnerDocument, DOMMemoryManager::ATTR_NS_OBJECT) DOMAttrNSImpl(*this, deep);
fNode.callUserDataHandlers(DOMUserDataHandler::NODE_CLONED, this, newNode);
return newNode;
}
@@ -92,7 +92,9 @@
return;
}
- if (!((DOMDocumentImpl *)this->getOwnerDocument())->isXMLName(prefix))
+ DOMDocumentImpl* doc = (DOMDocumentImpl*) fParent.fOwnerDocument;
+
+ if (!doc->isXMLName(prefix))
throw DOMException(DOMException::INVALID_CHARACTER_ERR,0, GetDOMNodeMemoryManager);
const XMLCh * xml = DOMNodeImpl::getXmlString();
@@ -109,14 +111,14 @@
throw DOMException(DOMException::NAMESPACE_ERR, 0, GetDOMNodeMemoryManager);
}
- this-> fPrefix = ((DOMDocumentImpl *)this->getOwnerDocument())->getPooledString(prefix);
+ this-> fPrefix = doc->getPooledString(prefix);
XMLSize_t prefixLen = XMLString::stringLen(prefix);
XMLSize_t newQualifiedNameLen = prefixLen+1+XMLString::stringLen(fLocalName);
XMLCh* newName;
XMLCh temp[4000];
if (newQualifiedNameLen >= 3999)
- newName = (XMLCh*) ((DOMDocumentImpl *)this->getOwnerDocument())->getMemoryManager()->allocate
+ newName = (XMLCh*) doc->getMemoryManager()->allocate
(
newQualifiedNameLen * sizeof(XMLCh)
);//new XMLCh[newQualifiedNameLen];
@@ -128,11 +130,10 @@
newName[prefixLen] = chColon;
XMLString::copyString(&newName[prefixLen+1], fLocalName);
- fName = ((DOMDocumentImpl *)this->getOwnerDocument())->
- getPooledString(newName);
+ fName = doc->getPooledString(newName);
if (newQualifiedNameLen >= 3999)
- ((DOMDocumentImpl *)this->getOwnerDocument())->getMemoryManager()->deallocate(newName);//delete[] newName;
+ doc->getMemoryManager()->deallocate(newName);//delete[] newName;
}
@@ -141,7 +142,7 @@
if (fNode.isOwned() && !fNode.isToBeReleased())
throw DOMException(DOMException::INVALID_ACCESS_ERR,0, GetDOMNodeMemoryManager);
- DOMDocumentImpl* doc = (DOMDocumentImpl*) getOwnerDocument();
+ DOMDocumentImpl* doc = (DOMDocumentImpl*)fParent.fOwnerDocument;
if (doc) {
fNode.callUserDataHandlers(DOMUserDataHandler::NODE_DELETED, 0, 0);
fParent.release();
@@ -170,7 +171,7 @@
void DOMAttrNSImpl::setName(const XMLCh* namespaceURI, const XMLCh* qualifiedName)
{
- DOMDocumentImpl* ownerDoc = (DOMDocumentImpl *) getOwnerDocument();
+ DOMDocumentImpl* ownerDoc = (DOMDocumentImpl *)fParent.fOwnerDocument;
const XMLCh * xmlns = DOMNodeImpl::getXmlnsString();
const XMLCh * xmlnsURI = DOMNodeImpl::getXmlnsURIString();
this->fName = ownerDoc->getPooledString(qualifiedName);
@@ -192,7 +193,7 @@
XMLCh* newName;
XMLCh temp[4000];
if (index >= 3999)
- newName = (XMLCh*) ((DOMDocumentImpl *)this->getOwnerDocument())->getMemoryManager()->allocate
+ newName = (XMLCh*) ownerDoc->getMemoryManager()->allocate
(
(XMLString::stringLen(qualifiedName) + 1) * sizeof(XMLCh)
);//new XMLCh[XMLString::stringLen(qualifiedName)+1];
@@ -205,10 +206,10 @@
this -> fLocalName = ownerDoc->getPooledString(fName+index+1);
if (index >= 3999)
- ((DOMDocumentImpl *)this->getOwnerDocument())->getMemoryManager()->deallocate(newName);//delete[] newName;
+ ownerDoc->getMemoryManager()->deallocate(newName);//delete[] newName;
// Before we carry on, we should check if the prefix or localName are valid XMLName
- if (!((DOMDocumentImpl *)this->getOwnerDocument())->isXMLName(fPrefix) || !((DOMDocumentImpl *)this->getOwnerDocument())->isXMLName(fLocalName))
+ if (!ownerDoc->isXMLName(fPrefix) || !ownerDoc->isXMLName(fLocalName))
throw DOMException(DOMException::NAMESPACE_ERR, 0, GetDOMNodeMemoryManager);
}
@@ -224,4 +225,3 @@
}
XERCES_CPP_NAMESPACE_END
-
Modified: xerces/c/trunk/src/xercesc/dom/impl/DOMCDATASectionImpl.cpp
URL: http://svn.apache.org/viewvc/xerces/c/trunk/src/xercesc/dom/impl/DOMCDATASectionImpl.cpp?rev=678381&r1=678380&r2=678381&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/dom/impl/DOMCDATASectionImpl.cpp (original)
+++ xerces/c/trunk/src/xercesc/dom/impl/DOMCDATASectionImpl.cpp Mon Jul 21 03:15:01 2008
@@ -95,9 +95,9 @@
if (offset > len)
throw DOMException(DOMException::INDEX_SIZE_ERR, 0, GetDOMNodeMemoryManager);
+ DOMDocumentImpl *doc = (DOMDocumentImpl *)getOwnerDocument();
DOMText *newText =
- getOwnerDocument()->createCDATASection(
- this->substringData(offset, len - offset));
+ doc->createCDATASection(this->substringData(offset, len - offset));
DOMNode *parent = getParentNode();
if (parent != 0)
@@ -105,8 +105,8 @@
fCharacterData.fDataBuf->chop(offset);
- if (this->getOwnerDocument() != 0) {
- Ranges* ranges = ((DOMDocumentImpl *)this->getOwnerDocument())->getRanges();
+ if (doc != 0) {
+ Ranges* ranges = doc->getRanges();
if (ranges != 0) {
XMLSize_t sz = ranges->size();
if (sz != 0) {
@@ -128,7 +128,8 @@
const XMLCh* DOMCDATASectionImpl::getWholeText() const
{
- DOMTreeWalker* pWalker=getOwnerDocument()->createTreeWalker(getOwnerDocument()->getDocumentElement(), DOMNodeFilter::SHOW_ALL, NULL, true);
+ DOMDocument *doc = getOwnerDocument();
+ DOMTreeWalker* pWalker=doc->createTreeWalker(doc->getDocumentElement(), DOMNodeFilter::SHOW_ALL, NULL, true);
pWalker->setCurrentNode((DOMNode*)this);
// Logically-adjacent text nodes are Text or CDATASection nodes that can be visited sequentially in document order or in
// reversed document order without entering, exiting, or passing over Element, Comment, or ProcessingInstruction nodes.
@@ -156,7 +157,8 @@
DOMText* DOMCDATASectionImpl::replaceWholeText(const XMLCh* newText)
{
- DOMTreeWalker* pWalker=getOwnerDocument()->createTreeWalker(getOwnerDocument()->getDocumentElement(), DOMNodeFilter::SHOW_ALL, NULL, true);
+ DOMDocument *doc = getOwnerDocument();
+ DOMTreeWalker* pWalker=doc->createTreeWalker(doc->getDocumentElement(), DOMNodeFilter::SHOW_ALL, NULL, true);
pWalker->setCurrentNode((DOMNode*)this);
// Logically-adjacent text nodes are Text or CDATASection nodes that can be visited sequentially in document order or in
// reversed document order without entering, exiting, or passing over Element, Comment, or ProcessingInstruction nodes.
@@ -177,7 +179,7 @@
break;
if(nextNode->getNodeType()==ENTITY_REFERENCE_NODE)
{
- DOMTreeWalker* pInnerWalker=getOwnerDocument()->createTreeWalker(nextNode, DOMNodeFilter::SHOW_ALL, NULL, true);
+ DOMTreeWalker* pInnerWalker=doc->createTreeWalker(nextNode, DOMNodeFilter::SHOW_ALL, NULL, true);
while(pInnerWalker->nextNode())
{
short nodeType=pInnerWalker->getCurrentNode()->getNodeType();
@@ -199,9 +201,9 @@
else
{
if(getNodeType()==TEXT_NODE)
- retVal=getOwnerDocument()->createTextNode(newText);
+ retVal=doc->createTextNode(newText);
else
- retVal=getOwnerDocument()->createCDATASection(newText);
+ retVal=doc->createCDATASection(newText);
pFirstTextNode->getParentNode()->insertBefore(retVal, pFirstTextNode);
}
}
Modified: xerces/c/trunk/src/xercesc/dom/impl/DOMCharacterDataImpl.cpp
URL: http://svn.apache.org/viewvc/xerces/c/trunk/src/xercesc/dom/impl/DOMCharacterDataImpl.cpp?rev=678381&r1=678380&r2=678381&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/dom/impl/DOMCharacterDataImpl.cpp (original)
+++ xerces/c/trunk/src/xercesc/dom/impl/DOMCharacterDataImpl.cpp Mon Jul 21 03:15:01 2008
@@ -5,9 +5,9 @@
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -74,8 +74,9 @@
throw DOMException(DOMException::NO_MODIFICATION_ALLOWED_ERR, 0, GetDOMCharacterDataImplMemoryManager);
fDataBuf->set(value);
- if (node->getOwnerDocument() != 0) {
- Ranges* ranges = ((DOMDocumentImpl *)node->getOwnerDocument())->getRanges();
+ DOMDocumentImpl *doc = (DOMDocumentImpl *)node->getOwnerDocument();
+ if (doc != 0) {
+ Ranges* ranges = doc->getRanges();
if (ranges != 0) {
XMLSize_t sz = ranges->size();
if (sz != 0) {
@@ -147,8 +148,9 @@
// the old string (may be shared)
// It just hangs around, possibly orphaned.
- if (node->getOwnerDocument() != 0) {
- Ranges* ranges = ((DOMDocumentImpl *)node->getOwnerDocument())->getRanges();
+ DOMDocumentImpl *doc = (DOMDocumentImpl *)node->getOwnerDocument();
+ if (doc != 0) {
+ Ranges* ranges = doc->getRanges();
if (ranges != 0) {
XMLSize_t sz = ranges->size();
if (sz != 0) {
@@ -215,8 +217,9 @@
if (newLen >= 3999)
XMLPlatformUtils::fgMemoryManager->deallocate(newString);//delete[] newString;
- if (node->getOwnerDocument() != 0) {
- Ranges* ranges = ((DOMDocumentImpl *)node->getOwnerDocument())->getRanges();
+ DOMDocumentImpl *doc = (DOMDocumentImpl *)node->getOwnerDocument();
+ if (doc != 0) {
+ Ranges* ranges = doc->getRanges();
if (ranges != 0) {
XMLSize_t sz = ranges->size();
if (sz != 0) {
@@ -267,11 +270,12 @@
if (offset > len)
throw DOMException(DOMException::INDEX_SIZE_ERR, 0, GetDOMCharacterDataImplMemoryManager);
+ DOMDocumentImpl *doc = (DOMDocumentImpl *)node->getOwnerDocument();
XMLCh* newString;
XMLCh temp[4000];
if (len >= 3999)
- newString = (XMLCh*) ((DOMDocumentImpl *)node->getOwnerDocument())->getMemoryManager()->allocate
+ newString = (XMLCh*) doc->getMemoryManager()->allocate
(
(len + 1) * sizeof(XMLCh)
);//new XMLCh[len+1];
@@ -281,10 +285,10 @@
XMLString::copyNString(newString, fDataBuf->getRawBuffer()+offset, count);
newString[count] = chNull;
- const XMLCh* retString = ((DOMDocumentImpl *)node->getOwnerDocument())->getPooledString(newString);
+ const XMLCh* retString = doc->getPooledString(newString);
if (len >= 3999)
- ((DOMDocumentImpl *)node->getOwnerDocument())->getMemoryManager()->deallocate(newString);//delete[] newString;
+ doc->getMemoryManager()->deallocate(newString);//delete[] newString;
return retString;
@@ -296,4 +300,3 @@
}
XERCES_CPP_NAMESPACE_END
-
Modified: xerces/c/trunk/src/xercesc/dom/impl/DOMCommentImpl.cpp
URL: http://svn.apache.org/viewvc/xerces/c/trunk/src/xercesc/dom/impl/DOMCommentImpl.cpp?rev=678381&r1=678380&r2=678381&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/dom/impl/DOMCommentImpl.cpp (original)
+++ xerces/c/trunk/src/xercesc/dom/impl/DOMCommentImpl.cpp Mon Jul 21 03:15:01 2008
@@ -101,9 +101,9 @@
if (offset > len)
throw DOMException(DOMException::INDEX_SIZE_ERR, 0, GetDOMNodeMemoryManager);
+ DOMDocumentImpl *doc = (DOMDocumentImpl *)getOwnerDocument();
DOMComment *newText =
- getOwnerDocument()->createComment(
- this->substringData(offset, len - offset));
+ doc->createComment(this->substringData(offset, len - offset));
DOMNode *parent = getParentNode();
if (parent != 0)
@@ -111,8 +111,8 @@
fCharacterData.fDataBuf->chop(offset);
- if (this->getOwnerDocument() != 0) {
- Ranges* ranges = ((DOMDocumentImpl *)this->getOwnerDocument())->getRanges();
+ if (doc != 0) {
+ Ranges* ranges = doc->getRanges();
if (ranges != 0) {
XMLSize_t sz = ranges->size();
if (sz != 0) {
Modified: xerces/c/trunk/src/xercesc/dom/impl/DOMDeepNodeListImpl.cpp
URL: http://svn.apache.org/viewvc/xerces/c/trunk/src/xercesc/dom/impl/DOMDeepNodeListImpl.cpp?rev=678381&r1=678380&r2=678381&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/dom/impl/DOMDeepNodeListImpl.cpp (original)
+++ xerces/c/trunk/src/xercesc/dom/impl/DOMDeepNodeListImpl.cpp Mon Jul 21 03:15:01 2008
@@ -58,10 +58,12 @@
, fMatchAllURI(false)
, fMatchURIandTagname(true)
{
- fTagName = ((DOMDocumentImpl *)(castToNodeImpl(rootNode)->getOwnerDocument()))->getPooledString(localName);
+ DOMDocumentImpl* doc = (DOMDocumentImpl *)castToNodeImpl(rootNode)->getOwnerDocument();
+
+ fTagName = doc->getPooledString(localName);
fMatchAll = XMLString::equals(fTagName, kAstr);
fMatchAllURI = XMLString::equals(namespaceURI, kAstr);
- fNamespaceURI = ((DOMDocumentImpl *)(castToNodeImpl(rootNode)->getOwnerDocument()))->getPooledString(namespaceURI);
+ fNamespaceURI = doc->getPooledString(namespaceURI);
}
Modified: xerces/c/trunk/src/xercesc/dom/impl/DOMDocumentImpl.cpp
URL: http://svn.apache.org/viewvc/xerces/c/trunk/src/xercesc/dom/impl/DOMDocumentImpl.cpp?rev=678381&r1=678380&r2=678381&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/dom/impl/DOMDocumentImpl.cpp (original)
+++ xerces/c/trunk/src/xercesc/dom/impl/DOMDocumentImpl.cpp Mon Jul 21 03:15:01 2008
@@ -36,7 +36,6 @@
#include "DOMNotationImpl.hpp"
#include "DOMProcessingInstructionImpl.hpp"
#include "DOMTextImpl.hpp"
-#include "DOMStringPool.hpp"
#include "DOMTreeWalkerImpl.hpp"
#include "DOMNodeIteratorImpl.hpp"
#include "DOMNodeIDMap.hpp"
@@ -60,7 +59,6 @@
// than this will be handled by
// allocating directly with system.
-
//
// Constructors. Warning - be very careful with the ordering of initialization
// of the heap. Ordering depends on the order of declaration
@@ -92,7 +90,7 @@
fNodeListPool(0),
fDocType(0),
fDocElement(0),
- fNamePool(0),
+ fNameTableSize(257),
fNormalizer(0),
fRanges(0),
fNodeIterators(0),
@@ -101,7 +99,10 @@
fChanges(0),
errorChecking(true)
{
- fNamePool = new (this) DOMStringPool(257, this);
+ fNameTable = (DOMStringPoolEntry**)allocate (
+ sizeof (DOMStringPoolEntry*) * fNameTableSize);
+ for (XMLSize_t i = 0; i < fNameTableSize; i++)
+ fNameTable[i] = 0;
}
@@ -131,7 +132,7 @@
fNodeListPool(0),
fDocType(0),
fDocElement(0),
- fNamePool(0),
+ fNameTableSize(257),
fNormalizer(0),
fRanges(0),
fNodeIterators(0),
@@ -140,7 +141,11 @@
fChanges(0),
errorChecking(true)
{
- fNamePool = new (this) DOMStringPool(257, this);
+ fNameTable = (DOMStringPoolEntry**)allocate (
+ sizeof (DOMStringPoolEntry*) * fNameTableSize);
+ for (XMLSize_t i = 0; i < fNameTableSize; i++)
+ fNameTable[i] = 0;
+
try {
setDocumentType(doctype);
@@ -167,7 +172,9 @@
// New doctypes can be created either with the factory methods on DOMImplementation, in
// which case ownerDocument will be 0, or with methods on DocumentImpl, in which case
// ownerDocument will be set, but the DocType won't yet be a child of the document.
- if (doctype->getOwnerDocument() != 0 && doctype->getOwnerDocument() != this)
+ //
+ DOMDocument* doc = doctype->getOwnerDocument();
+ if (doc != 0 && doc != this)
throw DOMException( //one doctype can belong to only one DOMDocumentImpl
DOMException::WRONG_DOCUMENT_ERR, 0, getMemoryManager());
@@ -815,13 +822,6 @@
return newStr;
}
-
-const XMLCh * DOMDocumentImpl::getPooledString(const XMLCh *src)
-{
- if (!src) return 0;
- else return this->fNamePool->getPooledString(src);
-}
-
XMLSize_t DOMDocumentImpl::getMemoryAllocationBlockSize() const
{
return fHeapAllocSize;
Modified: xerces/c/trunk/src/xercesc/dom/impl/DOMDocumentImpl.hpp
URL: http://svn.apache.org/viewvc/xerces/c/trunk/src/xercesc/dom/impl/DOMDocumentImpl.hpp?rev=678381&r1=678380&r2=678381&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/dom/impl/DOMDocumentImpl.hpp (original)
+++ xerces/c/trunk/src/xercesc/dom/impl/DOMDocumentImpl.hpp Mon Jul 21 03:15:01 2008
@@ -40,6 +40,7 @@
#include <xercesc/dom/DOMUserDataHandler.hpp>
#include <xercesc/dom/DOMMemoryManager.hpp>
#include "DOMNodeImpl.hpp"
+#include "DOMStringPool.hpp"
#include "DOMParentNode.hpp"
#include "DOMDeepNodeListPool.hpp"
@@ -67,7 +68,6 @@
class DOMImplementation;
class DOMNodeIDMap;
class DOMRangeImpl;
-class DOMStringPool;
class DOMBuffer;
class MemoryManager;
class XPathNSResolver;
@@ -80,7 +80,6 @@
class CDOM_EXPORT DOMDocumentImpl: public XMemory, public DOMMemoryManager, public DOMDocument {
public:
-
// -----------------------------------------------------------------------
// data
// -----------------------------------------------------------------------
@@ -335,7 +334,10 @@
// Other data
DOMDocumentType* fDocType;
DOMElement* fDocElement;
- DOMStringPool* fNamePool;
+
+ DOMStringPoolEntry** fNameTable;
+ XMLSize_t fNameTableSize;
+
DOMNormalizer* fNormalizer;
Ranges* fRanges;
NodeIterators* fNodeIterators;
@@ -352,6 +354,38 @@
return fMemoryManager;
}
+inline const XMLCh* DOMDocumentImpl::getPooledString(const XMLCh *in)
+{
+ if (in == 0)
+ return 0;
+
+ DOMStringPoolEntry **pspe;
+ DOMStringPoolEntry *spe;
+
+ XMLSize_t inHash = XMLString::hash(in, fNameTableSize);
+ pspe = &fNameTable[inHash];
+ while (*pspe != 0)
+ {
+ if (XMLString::equals((*pspe)->fString, in))
+ return (*pspe)->fString;
+ pspe = &((*pspe)->fNext);
+ }
+
+ // This string hasn't been seen before. Add it to the pool.
+ //
+
+ // Compute size to allocate. Note that there's 1 char of string
+ // 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);
+ *pspe = spe = (DOMStringPoolEntry *)allocate(sizeToAllocate);
+ spe->fNext = 0;
+ XMLString::copyString((XMLCh*)spe->fString, in);
+
+ return spe->fString;
+}
+
XERCES_CPP_NAMESPACE_END
// ---------------------------------------------------------------------------
Modified: xerces/c/trunk/src/xercesc/dom/impl/DOMDocumentTypeImpl.cpp
URL: http://svn.apache.org/viewvc/xerces/c/trunk/src/xercesc/dom/impl/DOMDocumentTypeImpl.cpp?rev=678381&r1=678380&r2=678381&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/dom/impl/DOMDocumentTypeImpl.cpp (original)
+++ xerces/c/trunk/src/xercesc/dom/impl/DOMDocumentTypeImpl.cpp Mon Jul 21 03:15:01 2008
@@ -206,8 +206,9 @@
DOMNode *DOMDocumentTypeImpl::cloneNode(bool deep) const
{
DOMNode* newNode = 0;
- if (castToNodeImpl(this)->getOwnerDocument())
- newNode = new (castToNodeImpl(this)->getOwnerDocument(), DOMMemoryManager::DOCUMENT_TYPE_OBJECT) DOMDocumentTypeImpl(*this, false, deep);
+ DOMDocument* doc = castToNodeImpl(this)->getOwnerDocument();
+ if (doc != 0)
+ newNode = new (doc, DOMMemoryManager::DOCUMENT_TYPE_OBJECT) DOMDocumentTypeImpl(*this, false, deep);
else
{
XMLMutexLock lock(sDocumentMutex);
@@ -336,8 +337,9 @@
if (value == 0)
return;
- if ((DOMDocumentImpl *)castToNodeImpl(this)->getOwnerDocument())
- fPublicId = ((DOMDocumentImpl *)castToNodeImpl(this)->getOwnerDocument())->cloneString(value);
+ DOMDocumentImpl* doc = (DOMDocumentImpl *)castToNodeImpl(this)->getOwnerDocument();
+ if (doc != 0)
+ fPublicId = doc->cloneString(value);
else {
XMLMutexLock lock(sDocumentMutex);
fPublicId = ((DOMDocumentImpl *)sDocument)->cloneString(value);
@@ -346,8 +348,9 @@
void DOMDocumentTypeImpl::setSystemId(const XMLCh *value)
{
- if ((DOMDocumentImpl *)castToNodeImpl(this)->getOwnerDocument())
- fSystemId = ((DOMDocumentImpl *)castToNodeImpl(this)->getOwnerDocument())->cloneString(value);
+ DOMDocumentImpl* doc = (DOMDocumentImpl *)castToNodeImpl(this)->getOwnerDocument();
+ if (doc != 0)
+ fSystemId = doc->cloneString(value);
else {
XMLMutexLock lock(sDocumentMutex);
fSystemId = ((DOMDocumentImpl *)sDocument)->cloneString(value);
@@ -356,8 +359,9 @@
void DOMDocumentTypeImpl::setInternalSubset(const XMLCh *value)
{
- if ((DOMDocumentImpl *)castToNodeImpl(this)->getOwnerDocument())
- fInternalSubset = ((DOMDocumentImpl *)castToNodeImpl(this)->getOwnerDocument())->cloneString(value);
+ DOMDocumentImpl* doc = (DOMDocumentImpl *)castToNodeImpl(this)->getOwnerDocument();
+ if (doc != 0)
+ fInternalSubset = doc->cloneString(value);
else {
XMLMutexLock lock(sDocumentMutex);
fInternalSubset = ((DOMDocumentImpl *)sDocument)->cloneString(value);
Modified: xerces/c/trunk/src/xercesc/dom/impl/DOMElementImpl.cpp
URL: http://svn.apache.org/viewvc/xerces/c/trunk/src/xercesc/dom/impl/DOMElementImpl.cpp?rev=678381&r1=678380&r2=678381&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/dom/impl/DOMElementImpl.cpp (original)
+++ xerces/c/trunk/src/xercesc/dom/impl/DOMElementImpl.cpp Mon Jul 21 03:15:01 2008
@@ -60,8 +60,8 @@
DOMElementImpl::DOMElementImpl(const DOMElementImpl &other, bool deep)
: DOMElement(other),
- fNode(other.getOwnerDocument()),
- fParent(other.getOwnerDocument()),
+ fNode (other.fParent.fOwnerDocument),
+ fParent (other.fParent.fOwnerDocument),
fAttributes(0),
fDefaultAttributes(0)
{
@@ -84,14 +84,14 @@
setupDefaultAttributes();
if (!fDefaultAttributes)
- fDefaultAttributes = new (getOwnerDocument()) DOMAttrMapImpl(this);
+ fDefaultAttributes = new (fParent.fOwnerDocument) DOMAttrMapImpl(this);
if (!fAttributes) {
if (!fDefaultAttributes) {
- fAttributes = new (getOwnerDocument()) DOMAttrMapImpl(this);
+ fAttributes = new (fParent.fOwnerDocument) DOMAttrMapImpl(this);
}
else {
- fAttributes = new (getOwnerDocument()) DOMAttrMapImpl(this, fDefaultAttributes);
+ fAttributes = new (fParent.fOwnerDocument) DOMAttrMapImpl(this, fDefaultAttributes);
}
}
@@ -105,7 +105,7 @@
DOMNode *DOMElementImpl::cloneNode(bool deep) const
{
- DOMNode* newNode = new (getOwnerDocument(), DOMMemoryManager::ELEMENT_OBJECT) DOMElementImpl(*this, deep);
+ DOMNode* newNode = new (fParent.fOwnerDocument, DOMMemoryManager::ELEMENT_OBJECT) DOMElementImpl(*this, deep);
fNode.callUserDataHandlers(DOMUserDataHandler::NODE_CLONED, this, newNode);
return newNode;
}
@@ -150,7 +150,7 @@
DOMNodeList *DOMElementImpl::getElementsByTagName(const XMLCh *tagname) const
{
- DOMDocumentImpl *docImpl = (DOMDocumentImpl *)getOwnerDocument();
+ DOMDocumentImpl *docImpl = (DOMDocumentImpl *)fParent.fOwnerDocument;
return docImpl->getDeepNodeList(this,tagname);
}
@@ -222,7 +222,7 @@
DOMAttr* newAttr = getAttributeNode(nam);
if (!newAttr)
{
- newAttr = this->fNode.getOwnerDocument()->createAttribute(nam);
+ newAttr = fParent.fOwnerDocument->createAttribute(nam);
fAttributes->setNamedItem(newAttr);
}
@@ -341,7 +341,7 @@
DOMAttr* newAttr = getAttributeNodeNS(fNamespaceURI, qualifiedName+index);
if (!newAttr)
{
- newAttr = this->fNode.getOwnerDocument()->createAttributeNS(fNamespaceURI, qualifiedName);
+ newAttr = fParent.fOwnerDocument->createAttributeNS(fNamespaceURI, qualifiedName);
fAttributes->setNamedItemNS(newAttr);
}
@@ -378,7 +378,7 @@
throw DOMException(
DOMException::NO_MODIFICATION_ALLOWED_ERR, 0, GetDOMNodeMemoryManager);
- if (newAttr -> getOwnerDocument() != this -> getOwnerDocument())
+ if (newAttr -> getOwnerDocument() != fParent.fOwnerDocument)
throw DOMException(DOMException::WRONG_DOCUMENT_ERR, 0, GetDOMNodeMemoryManager);
// This will throw INUSE if necessary
@@ -391,7 +391,7 @@
DOMNodeList *DOMElementImpl::getElementsByTagNameNS(const XMLCh *namespaceURI,
const XMLCh *localName) const
{
- DOMDocumentImpl *docImpl = (DOMDocumentImpl *)getOwnerDocument();
+ DOMDocumentImpl *docImpl = (DOMDocumentImpl *)fParent.fOwnerDocument;
return docImpl->getDeepNodeList(this, namespaceURI, localName);
}
@@ -424,7 +424,7 @@
// initially set up the default attribute information based on doctype information
void DOMElementImpl::setupDefaultAttributes()
{
- DOMDocument *tmpdoc = getOwnerDocument();
+ DOMDocument *tmpdoc = fParent.fOwnerDocument;
if ((fNode.fOwnerNode == 0) || (tmpdoc == 0) || (tmpdoc->getDoctype() == 0))
return;
@@ -432,7 +432,7 @@
DOMAttrMapImpl* defAttrs = (eldef == 0) ? 0 : (DOMAttrMapImpl *)(eldef->getAttributes());
if (defAttrs)
- fDefaultAttributes = new (getOwnerDocument()) DOMAttrMapImpl(this, defAttrs);
+ fDefaultAttributes = new (tmpdoc) DOMAttrMapImpl(this, defAttrs);
}
DOMAttr * DOMElementImpl::setDefaultAttributeNode(DOMAttr *newAttr)
@@ -459,7 +459,7 @@
throw DOMException(
DOMException::NO_MODIFICATION_ALLOWED_ERR, 0, GetDOMNodeMemoryManager);
- if (newAttr -> getOwnerDocument() != this -> getOwnerDocument())
+ if (newAttr -> getOwnerDocument() != fParent.fOwnerDocument)
throw DOMException(DOMException::WRONG_DOCUMENT_ERR, 0, GetDOMNodeMemoryManager);
// This will throw INUSE if necessary
@@ -474,7 +474,7 @@
if (fNode.isOwned() && !fNode.isToBeReleased())
throw DOMException(DOMException::INVALID_ACCESS_ERR,0, GetDOMNodeMemoryManager);
- DOMDocumentImpl* doc = (DOMDocumentImpl*) getOwnerDocument();
+ DOMDocumentImpl* doc = (DOMDocumentImpl*) fParent.fOwnerDocument;
if (doc) {
fNode.callUserDataHandlers(DOMUserDataHandler::NODE_DELETED, 0, 0);
fParent.release();
@@ -509,9 +509,10 @@
if(baseURI)
{
try {
- XMLUri temp(baseURI, ((DOMDocumentImpl *)this->getOwnerDocument())->getMemoryManager());
- XMLUri temp2(&temp, uri, ((DOMDocumentImpl *)this->getOwnerDocument())->getMemoryManager());
- uri = ((DOMDocumentImpl *)this->getOwnerDocument())->cloneString(temp2.getUriText());
+ DOMDocumentImpl* doc = (DOMDocumentImpl *)fParent.fOwnerDocument;
+ XMLUri temp(baseURI, doc->getMemoryManager());
+ XMLUri temp2(&temp, uri, doc->getMemoryManager());
+ uri = doc->cloneString(temp2.getUriText());
}
catch(const OutOfMemoryException&)
{
@@ -617,7 +618,7 @@
DOMNode* DOMElementImpl::rename(const XMLCh* namespaceURI, const XMLCh* name)
{
- DOMDocumentImpl* doc = (DOMDocumentImpl*) getOwnerDocument();
+ DOMDocumentImpl* doc = (DOMDocumentImpl*) fParent.fOwnerDocument;
if (!namespaceURI || !*namespaceURI) {
fName = doc->getPooledString(name);
Modified: xerces/c/trunk/src/xercesc/dom/impl/DOMElementNSImpl.cpp
URL: http://svn.apache.org/viewvc/xerces/c/trunk/src/xercesc/dom/impl/DOMElementNSImpl.cpp?rev=678381&r1=678380&r2=678381&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/dom/impl/DOMElementNSImpl.cpp (original)
+++ xerces/c/trunk/src/xercesc/dom/impl/DOMElementNSImpl.cpp Mon Jul 21 03:15:01 2008
@@ -5,9 +5,9 @@
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -59,7 +59,7 @@
}
DOMNode * DOMElementNSImpl::cloneNode(bool deep) const {
- DOMNode* newNode = new (getOwnerDocument(), DOMMemoryManager::ELEMENT_NS_OBJECT) DOMElementNSImpl(*this, deep);
+ DOMNode* newNode = new (fParent.fOwnerDocument, DOMMemoryManager::ELEMENT_NS_OBJECT) DOMElementNSImpl(*this, deep);
fNode.callUserDataHandlers(DOMUserDataHandler::NODE_CLONED, this, newNode);
return newNode;
}
@@ -93,7 +93,9 @@
return;
}
- if(!((DOMDocumentImpl *)this->getOwnerDocument())->isXMLName(prefix))
+ DOMDocumentImpl* doc = (DOMDocumentImpl*) fParent.fOwnerDocument;
+
+ if(!doc->isXMLName(prefix))
throw DOMException(DOMException::INVALID_CHARACTER_ERR,0, GetDOMNodeMemoryManager);
const XMLCh * xml = DOMNodeImpl::getXmlString();
@@ -108,7 +110,7 @@
throw DOMException(DOMException::NAMESPACE_ERR, 0, GetDOMNodeMemoryManager);
}
- this-> fPrefix = ((DOMDocumentImpl *)this->getOwnerDocument())->getPooledString(prefix);
+ this-> fPrefix = doc->getPooledString(prefix);
XMLSize_t prefixLen = XMLString::stringLen(prefix);
XMLSize_t newQualifiedNameLen = prefixLen+1+XMLString::stringLen(fLocalName);
@@ -116,7 +118,7 @@
XMLCh *newName;
XMLCh temp[4000];
if (newQualifiedNameLen >= 3999)
- newName = (XMLCh*) ((DOMDocumentImpl *)this->getOwnerDocument())->getMemoryManager()->allocate
+ newName = (XMLCh*) doc->getMemoryManager()->allocate
(
newQualifiedNameLen * sizeof(XMLCh)
);//new XMLCh[newQualifiedNameLen];
@@ -128,11 +130,10 @@
newName[prefixLen] = chColon;
XMLString::copyString(&newName[prefixLen+1], fLocalName);
- fName = ((DOMDocumentImpl *)this->getOwnerDocument())->
- getPooledString(newName);
+ fName = doc->getPooledString(newName);
if (newQualifiedNameLen >= 3999)
- ((DOMDocumentImpl *)this->getOwnerDocument())->getMemoryManager()->deallocate(newName);//delete[] newName;
+ doc->getMemoryManager()->deallocate(newName);//delete[] newName;
}
@@ -141,7 +142,7 @@
if (fNode.isOwned() && !fNode.isToBeReleased())
throw DOMException(DOMException::INVALID_ACCESS_ERR,0, GetDOMNodeMemoryManager);
- DOMDocumentImpl* doc = (DOMDocumentImpl*) getOwnerDocument();
+ DOMDocumentImpl* doc = (DOMDocumentImpl*) fParent.fOwnerDocument;
if (doc) {
fNode.callUserDataHandlers(DOMUserDataHandler::NODE_DELETED, 0, 0);
fParent.release();
@@ -166,7 +167,7 @@
void DOMElementNSImpl::setName(const XMLCh *namespaceURI,
const XMLCh *qualifiedName)
{
- DOMDocumentImpl* ownerDoc = (DOMDocumentImpl *) getOwnerDocument();
+ DOMDocumentImpl* ownerDoc = (DOMDocumentImpl *) fParent.fOwnerDocument;
this->fName = ownerDoc->getPooledString(qualifiedName);
int index = DOMDocumentImpl::indexofQualifiedName(qualifiedName);
@@ -196,7 +197,7 @@
ownerDoc->getMemoryManager()->deallocate(newName);//delete[] newName;
// Before we carry on, we should check if the prefix or localName are valid XMLName
- if (!((DOMDocumentImpl *)this->getOwnerDocument())->isXMLName(fPrefix) || !((DOMDocumentImpl *)this->getOwnerDocument())->isXMLName(fLocalName))
+ if (!ownerDoc->isXMLName(fPrefix) || !ownerDoc->isXMLName(fLocalName))
throw DOMException(DOMException::NAMESPACE_ERR, 0, GetDOMNodeMemoryManager);
}
@@ -212,12 +213,12 @@
const DOMTypeInfo *DOMElementNSImpl::getSchemaTypeInfo() const
{
- if(!fSchemaType)
+ if(!fSchemaType)
return &DOMTypeInfoImpl::g_DtdValidatedElement;
return fSchemaType;
}
-void DOMElementNSImpl::setSchemaTypeInfo(const DOMTypeInfoImpl* typeInfo)
+void DOMElementNSImpl::setSchemaTypeInfo(const DOMTypeInfoImpl* typeInfo)
{
fSchemaType = typeInfo;
}
@@ -238,4 +239,3 @@
}
XERCES_CPP_NAMESPACE_END
-
Modified: xerces/c/trunk/src/xercesc/dom/impl/DOMEntityImpl.cpp
URL: http://svn.apache.org/viewvc/xerces/c/trunk/src/xercesc/dom/impl/DOMEntityImpl.cpp?rev=678381&r1=678380&r2=678381&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/dom/impl/DOMEntityImpl.cpp (original)
+++ xerces/c/trunk/src/xercesc/dom/impl/DOMEntityImpl.cpp Mon Jul 21 03:15:01 2008
@@ -72,7 +72,7 @@
DOMNode *DOMEntityImpl::cloneNode(bool deep) const
{
- DOMNode* newNode = new (getOwnerDocument(), DOMMemoryManager::ENTITY_OBJECT) DOMEntityImpl(*this, deep);
+ DOMNode* newNode = new (fParent.fOwnerDocument, DOMMemoryManager::ENTITY_OBJECT) DOMEntityImpl(*this, deep);
fNode.callUserDataHandlers(DOMUserDataHandler::NODE_CLONED, this, newNode);
return newNode;
}
@@ -119,28 +119,28 @@
void DOMEntityImpl::setNotationName(const XMLCh *arg)
{
- DOMDocumentImpl *doc = (DOMDocumentImpl *)this->getOwnerDocument();
+ DOMDocumentImpl *doc = (DOMDocumentImpl *)fParent.fOwnerDocument;
fNotationName = doc->cloneString(arg);
}
void DOMEntityImpl::setPublicId(const XMLCh *arg)
{
- DOMDocumentImpl *doc = (DOMDocumentImpl *)this->getOwnerDocument();
+ DOMDocumentImpl *doc = (DOMDocumentImpl *)fParent.fOwnerDocument;
fPublicId = doc->cloneString(arg);
}
void DOMEntityImpl::setSystemId(const XMLCh *arg)
{
- DOMDocumentImpl *doc = (DOMDocumentImpl *)this->getOwnerDocument();
+ DOMDocumentImpl *doc = (DOMDocumentImpl *)fParent.fOwnerDocument;
fSystemId = doc->cloneString(arg);
}
void DOMEntityImpl::setBaseURI(const XMLCh* baseURI) {
if (baseURI && *baseURI) {
- XMLCh* temp = (XMLCh*) ((DOMDocumentImpl *)getOwnerDocument())->allocate((XMLString::stringLen(baseURI) + 9)*sizeof(XMLCh));
+ XMLCh* temp = (XMLCh*) ((DOMDocumentImpl *)fParent.fOwnerDocument)->allocate((XMLString::stringLen(baseURI) + 9)*sizeof(XMLCh));
XMLString::fixURI(baseURI, temp);
fBaseURI = temp;
}
@@ -214,7 +214,7 @@
if (fNode.isOwned() && !fNode.isToBeReleased())
throw DOMException(DOMException::INVALID_ACCESS_ERR,0, GetDOMNodeMemoryManager);
- DOMDocumentImpl* doc = (DOMDocumentImpl*) getOwnerDocument();
+ DOMDocumentImpl* doc = (DOMDocumentImpl*) fParent.fOwnerDocument;
if (doc) {
fNode.callUserDataHandlers(DOMUserDataHandler::NODE_DELETED, 0, 0);
fParent.release();
@@ -270,7 +270,7 @@
}
void DOMEntityImpl::setInputEncoding(const XMLCh* actualEncoding){
- DOMDocumentImpl *doc = (DOMDocumentImpl *)this->getOwnerDocument();
+ DOMDocumentImpl *doc = (DOMDocumentImpl *)fParent.fOwnerDocument;
fInputEncoding = doc->cloneString(actualEncoding);
}
@@ -279,7 +279,7 @@
}
void DOMEntityImpl::setXmlEncoding(const XMLCh* encoding){
- DOMDocumentImpl *doc = (DOMDocumentImpl *)this->getOwnerDocument();
+ DOMDocumentImpl *doc = (DOMDocumentImpl *)fParent.fOwnerDocument;
fXmlEncoding = doc->cloneString(encoding);
}
@@ -288,7 +288,7 @@
}
void DOMEntityImpl::setXmlVersion(const XMLCh* version){
- DOMDocumentImpl *doc = (DOMDocumentImpl *)this->getOwnerDocument();
+ DOMDocumentImpl *doc = (DOMDocumentImpl *)fParent.fOwnerDocument;
fXmlVersion = doc->cloneString(version);
}
Modified: xerces/c/trunk/src/xercesc/dom/impl/DOMEntityReferenceImpl.cpp
URL: http://svn.apache.org/viewvc/xerces/c/trunk/src/xercesc/dom/impl/DOMEntityReferenceImpl.cpp?rev=678381&r1=678380&r2=678381&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/dom/impl/DOMEntityReferenceImpl.cpp (original)
+++ xerces/c/trunk/src/xercesc/dom/impl/DOMEntityReferenceImpl.cpp Mon Jul 21 03:15:01 2008
@@ -34,7 +34,7 @@
const XMLCh *entityName)
: fNode(ownerDoc), fParent(ownerDoc), fBaseURI(0)
{
- fName = ((DOMDocumentImpl *)getOwnerDocument())->getPooledString(entityName);
+ fName = ((DOMDocumentImpl*)fParent.fOwnerDocument)->getPooledString(entityName);
// EntityReference behaves as a read-only node, since its contents
// reflect the Entity it refers to -- but see setNodeName().
//retrieve the corresponding entity content
@@ -63,7 +63,7 @@
bool cloneChild)
: fNode(ownerDoc), fParent(ownerDoc), fBaseURI(0)
{
- fName = ((DOMDocumentImpl *)getOwnerDocument())->getPooledString(entityName);
+ fName = ((DOMDocumentImpl*)fParent.fOwnerDocument)->getPooledString(entityName);
// EntityReference behaves as a read-only node, since its contents
// reflect the Entity it refers to -- but see setNodeName().
//retrieve the corresponding entity content
@@ -110,7 +110,7 @@
DOMNode *DOMEntityReferenceImpl::cloneNode(bool deep) const
{
- DOMNode* newNode = new (getOwnerDocument(), DOMMemoryManager::ENTITY_REFERENCE_OBJECT) DOMEntityReferenceImpl(*this, deep);
+ DOMNode* newNode = new (fParent.fOwnerDocument, DOMMemoryManager::ENTITY_REFERENCE_OBJECT) DOMEntityReferenceImpl(*this, deep);
fNode.callUserDataHandlers(DOMUserDataHandler::NODE_CLONED, this, newNode);
return newNode;
}
@@ -148,7 +148,7 @@
*/
void DOMEntityReferenceImpl::setReadOnly(bool readOnl,bool deep)
{
- if(((DOMDocumentImpl *)getOwnerDocument())->getErrorChecking() && readOnl==false)
+ if(((DOMDocumentImpl *)fParent.fOwnerDocument)->getErrorChecking() && readOnl==false)
throw DOMException(DOMException::NO_MODIFICATION_ALLOWED_ERR, 0, GetDOMNodeMemoryManager);
fNode.setReadOnly(readOnl,deep);
}
@@ -159,7 +159,7 @@
if (fNode.isOwned() && !fNode.isToBeReleased())
throw DOMException(DOMException::INVALID_ACCESS_ERR,0, GetDOMNodeMemoryManager);
- DOMDocumentImpl* doc = (DOMDocumentImpl*) getOwnerDocument();
+ DOMDocumentImpl* doc = (DOMDocumentImpl*) fParent.fOwnerDocument;
if (doc) {
fNode.callUserDataHandlers(DOMUserDataHandler::NODE_DELETED, 0, 0);
fParent.release();
Modified: xerces/c/trunk/src/xercesc/dom/impl/DOMNamedNodeMapImpl.cpp
URL: http://svn.apache.org/viewvc/xerces/c/trunk/src/xercesc/dom/impl/DOMNamedNodeMapImpl.cpp?rev=678381&r1=678380&r2=678381&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/dom/impl/DOMNamedNodeMapImpl.cpp (original)
+++ xerces/c/trunk/src/xercesc/dom/impl/DOMNamedNodeMapImpl.cpp Mon Jul 21 03:15:01 2008
@@ -129,13 +129,15 @@
if(fBuckets[hash]==0)
throw DOMException(DOMException::NOT_FOUND_ERR, 0, GetDOMNamedNodeMapMemoryManager);
+ DOMDocument *doc = fOwnerNode->getOwnerDocument();
+
XMLSize_t i = 0;
XMLSize_t size = fBuckets[hash]->size();
for (i = 0; i < size; ++i) {
DOMNode *n=fBuckets[hash]->elementAt(i);
if(XMLString::equals(name,n->getNodeName())) {
fBuckets[hash]->removeElementAt(i);
- castToNodeImpl(n)->fOwnerNode = fOwnerNode->getOwnerDocument();
+ castToNodeImpl(n)->fOwnerNode = doc;
castToNodeImpl(n)->isOwned(false);
return n;
}
@@ -181,7 +183,7 @@
DOMNode *n=fBuckets[hash]->elementAt(i);
if(XMLString::equals(name,n->getNodeName())) {
fBuckets[hash]->setElementAt(arg,i);
- castToNodeImpl(n)->fOwnerNode = fOwnerNode->getOwnerDocument();
+ castToNodeImpl(n)->fOwnerNode = doc;
castToNodeImpl(n)->isOwned(false);
return n;
}
@@ -280,7 +282,7 @@
||
(nLocalName == 0 && XMLString::equals(localName, n->getNodeName()))) {
fBuckets[index]->setElementAt(arg,i);
- castToNodeImpl(n)->fOwnerNode = fOwnerNode->getOwnerDocument();
+ castToNodeImpl(n)->fOwnerNode = doc;
castToNodeImpl(n)->isOwned(false);
return n;
}
@@ -310,6 +312,7 @@
if(fBuckets[index]==0)
continue;
+ DOMDocument *doc = fOwnerNode->getOwnerDocument();
XMLSize_t i = 0;
XMLSize_t size = fBuckets[index]->size();
for (i = 0; i < size; ++i) {
@@ -323,7 +326,7 @@
||
(nLocalName == 0 && XMLString::equals(localName, n->getNodeName()))) {
fBuckets[index]->removeElementAt(i);
- castToNodeImpl(n)->fOwnerNode = fOwnerNode->getOwnerDocument();
+ castToNodeImpl(n)->fOwnerNode = doc;
castToNodeImpl(n)->isOwned(false);
return n;
}
Modified: xerces/c/trunk/src/xercesc/dom/impl/DOMParentNode.cpp
URL: http://svn.apache.org/viewvc/xerces/c/trunk/src/xercesc/dom/impl/DOMParentNode.cpp?rev=678381&r1=678380&r2=678381&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/dom/impl/DOMParentNode.cpp (original)
+++ xerces/c/trunk/src/xercesc/dom/impl/DOMParentNode.cpp Mon Jul 21 03:15:01 2008
@@ -5,9 +5,9 @@
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -33,7 +33,7 @@
DOMParentNode::DOMParentNode(DOMDocument *ownerDoc)
: fOwnerDocument(ownerDoc), fFirstChild(0), fChildNodeList(this)
-{
+{
}
// This only makes a shallow copy, cloneChildren must also be called for a
@@ -49,15 +49,13 @@
void DOMParentNode::changed()
{
- DOMDocumentImpl *doc = (DOMDocumentImpl *)this->getOwnerDocument();
- doc->changed();
+ ((DOMDocumentImpl*)fOwnerDocument)->changed();
}
int DOMParentNode::changes() const
{
- DOMDocumentImpl *doc = (DOMDocumentImpl *)this->getOwnerDocument();
- return doc->changes();
+ return ((DOMDocumentImpl*)fOwnerDocument)->changes();
}
@@ -166,7 +164,7 @@
if (refChild!=0 && refChild->getParentNode() != castToNode(this))
throw DOMException(DOMException::NOT_FOUND_ERR,0, GetDOMParentNodeMemoryManager);
- // if the new node has to be placed before itself, we don't have to do anything
+ // if the new node has to be placed before itself, we don't have to do anything
// (even worse, we would crash if we continue, as we assume they are two distinct nodes)
if (refChild!=0 && newChild->isSameNode(refChild))
return newChild;
@@ -254,8 +252,8 @@
changed();
- if (this->getOwnerDocument() != 0) {
- Ranges* ranges = ((DOMDocumentImpl *)this->getOwnerDocument())->getRanges();
+ if (fOwnerDocument != 0) {
+ Ranges* ranges = ((DOMDocumentImpl*)fOwnerDocument)->getRanges();
if ( ranges != 0) {
XMLSize_t sz = ranges->size();
if (sz != 0) {
@@ -280,9 +278,9 @@
if (oldChild == 0 || oldChild->getParentNode() != castToNode(this))
throw DOMException(DOMException::NOT_FOUND_ERR, 0, GetDOMParentNodeMemoryManager);
- if (this->getOwnerDocument() != 0 ) {
+ if (fOwnerDocument != 0) {
//notify iterators
- NodeIterators* nodeIterators = ((DOMDocumentImpl *)this->getOwnerDocument())->getNodeIterators();
+ NodeIterators* nodeIterators = ((DOMDocumentImpl*)fOwnerDocument)->getNodeIterators();
if (nodeIterators != 0) {
XMLSize_t sz = nodeIterators->size();
if (sz != 0) {
@@ -294,7 +292,7 @@
}
//fix other ranges for change before deleting the node
- Ranges* ranges = ((DOMDocumentImpl *)this->getOwnerDocument())->getRanges();
+ Ranges* ranges = ((DOMDocumentImpl*)fOwnerDocument)->getRanges();
if (ranges != 0) {
XMLSize_t sz = ranges->size();
if (sz != 0) {
@@ -466,4 +464,3 @@
XERCES_CPP_NAMESPACE_END
-
Modified: xerces/c/trunk/src/xercesc/dom/impl/DOMProcessingInstructionImpl.cpp
URL: http://svn.apache.org/viewvc/xerces/c/trunk/src/xercesc/dom/impl/DOMProcessingInstructionImpl.cpp?rev=678381&r1=678380&r2=678381&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/dom/impl/DOMProcessingInstructionImpl.cpp (original)
+++ xerces/c/trunk/src/xercesc/dom/impl/DOMProcessingInstructionImpl.cpp Mon Jul 21 03:15:01 2008
@@ -132,9 +132,10 @@
if (offset > len)
throw DOMException(DOMException::INDEX_SIZE_ERR, 0, GetDOMNodeMemoryManager);
+ DOMDocumentImpl *doc = (DOMDocumentImpl *)getOwnerDocument();
DOMProcessingInstruction *newText =
- getOwnerDocument()->createProcessingInstruction(fTarget,
- this->substringData(offset, len - offset));
+ doc->createProcessingInstruction(
+ fTarget, this->substringData(offset, len - offset));
DOMNode *parent = getParentNode();
if (parent != 0)
@@ -142,8 +143,8 @@
fCharacterData.fDataBuf->chop(offset);
- if (this->getOwnerDocument() != 0) {
- Ranges* ranges = ((DOMDocumentImpl *)this->getOwnerDocument())->getRanges();
+ if (doc != 0) {
+ Ranges* ranges = doc->getRanges();
if (ranges != 0) {
XMLSize_t sz = ranges->size();
if (sz != 0) {
Modified: xerces/c/trunk/src/xercesc/dom/impl/DOMStringPool.cpp
URL: http://svn.apache.org/viewvc/xerces/c/trunk/src/xercesc/dom/impl/DOMStringPool.cpp?rev=678381&r1=678380&r2=678381&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/dom/impl/DOMStringPool.cpp (original)
+++ xerces/c/trunk/src/xercesc/dom/impl/DOMStringPool.cpp Mon Jul 21 03:15:01 2008
@@ -27,84 +27,6 @@
XERCES_CPP_NAMESPACE_BEGIN
-
-//
-// DStringPoolEntry - one of these structs is allocated for each
-// XMLCh String in the pool. Each slot in the
-// hash table array itself is a pointer to the head
-// of a singly-linked list of these structs.
-//
-// Although this struct is delcared with a string length of one,
-// the factory method allocates enough storage to hold the full
-// string length.
-//
-struct DOMStringPoolEntry
-{
- DOMStringPoolEntry *fNext;
- XMLCh fString[1];
-};
-
-
-//
-// createSPE - factory method for creating sting pool entry structs.
-// Allocates sufficient storage to hold the entire string
-//
-static DOMStringPoolEntry *createSPE(const XMLCh *str, DOMDocumentImpl *doc)
-{
- // Compute size to allocate. Note that there's 1 char of string 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(str)*sizeof(XMLCh);
- DOMStringPoolEntry *newSPE = (DOMStringPoolEntry *)doc->allocate(sizeToAllocate);
- newSPE->fNext = 0;
- XMLCh * nonConstStr = (XMLCh *)newSPE->fString;
- XMLString::copyString(nonConstStr, str);
- return newSPE;
-}
-
-
-
-DOMStringPool::DOMStringPool(XMLSize_t hashTableSize, DOMDocumentImpl *doc)
-: fDoc(doc)
-, fHashTableSize(hashTableSize)
-{
- // needed to get access to the doc's storage allocator.
-
- //fHashTable = new (fDoc) DOMStringPoolEntry *[hashTableSize];
- void* p = doc->allocate(sizeof(DOMStringPoolEntry*) * hashTableSize);
- fHashTable = (DOMStringPoolEntry**) p;
- for (XMLSize_t i=0; i<fHashTableSize; i++)
- fHashTable[i] = 0;
-}
-
-
-// Destructor. Nothing to do, since storage all belongs to the document.
-//
-DOMStringPool::~DOMStringPool()
-{
-}
-
-
-const XMLCh *DOMStringPool::getPooledString(const XMLCh *in)
-{
- DOMStringPoolEntry **pspe;
- DOMStringPoolEntry *spe;
-
- XMLSize_t inHash = XMLString::hash(in, fHashTableSize);
- pspe = &fHashTable[inHash];
- while (*pspe != 0)
- {
- if (XMLString::equals((*pspe)->fString, in))
- return (*pspe)->fString;
- pspe = &((*pspe)->fNext);
- }
-
- // This string hasn't been seen before. Add it to the pool.
- *pspe = spe = createSPE(in, fDoc);
- return spe->fString;
-}
-
-
// -----------------------------------------------------------------------
// DOMBuffer: Constructors
// -----------------------------------------------------------------------
Modified: xerces/c/trunk/src/xercesc/dom/impl/DOMStringPool.hpp
URL: http://svn.apache.org/viewvc/xerces/c/trunk/src/xercesc/dom/impl/DOMStringPool.hpp?rev=678381&r1=678380&r2=678381&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/dom/impl/DOMStringPool.hpp (original)
+++ xerces/c/trunk/src/xercesc/dom/impl/DOMStringPool.hpp Mon Jul 21 03:15:01 2008
@@ -5,9 +5,9 @@
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -35,39 +35,24 @@
XERCES_CPP_NAMESPACE_BEGIN
-
-struct DOMStringPoolEntry;
class DOMDocumentImpl;
//
-// DOMStringPool is a hash table of XMLCh* Strings.
-// Each DOM Document maintains a DOMStringPool containing a XMLCh* String
-// for each Element tag name and Attribute Name that has been added
-// to the document. When creating additional elements or attributes,
-// if the name has been seen before, the already existing string
-// will be reused.
+// DStringPoolEntry - one of these structs is allocated for each
+// XMLCh String in the pool. Each slot in the
+// hash table array itself is a pointer to the head
+// of a singly-linked list of these structs.
+//
+// Although this struct is delcared with a string length of one,
+// the factory method allocates enough storage to hold the full
+// string length.
//
-class DOMStringPool
+struct DOMStringPoolEntry
{
-public:
- DOMStringPool(XMLSize_t hashTableSize, DOMDocumentImpl *doc);
- ~DOMStringPool();
-
- const XMLCh *getPooledString(const XMLCh *in);
-
-
-private:
- DOMStringPool(const DOMStringPool &other); // Copy constructor and assignment
- DOMStringPool& operator = (const DOMStringPool &other); // of DOMStringPool are not supported.
-
-
- DOMDocumentImpl *fDoc;
- DOMStringPoolEntry **fHashTable;
- XMLSize_t fHashTableSize;
-
+ DOMStringPoolEntry *fNext;
+ XMLCh fString[1];
};
-
//
// DOMBuffer is a lightweight text buffer
// The buffer is not nul terminated until some asks to see the raw buffer
Modified: xerces/c/trunk/src/xercesc/dom/impl/DOMTextImpl.cpp
URL: http://svn.apache.org/viewvc/xerces/c/trunk/src/xercesc/dom/impl/DOMTextImpl.cpp?rev=678381&r1=678380&r2=678381&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/dom/impl/DOMTextImpl.cpp (original)
+++ xerces/c/trunk/src/xercesc/dom/impl/DOMTextImpl.cpp Mon Jul 21 03:15:01 2008
@@ -91,9 +91,9 @@
if (offset > len)
throw DOMException(DOMException::INDEX_SIZE_ERR, 0, GetDOMNodeMemoryManager);
- DOMText *newText =
- getOwnerDocument()->createTextNode(
- this->substringData(offset, len - offset));
+ DOMDocumentImpl *doc = (DOMDocumentImpl *)getOwnerDocument();
+ DOMText *newText = doc->createTextNode(
+ this->substringData(offset, len - offset));
DOMNode *parent = getParentNode();
if (parent != 0)
@@ -101,8 +101,8 @@
fCharacterData.fDataBuf->chop(offset);
- if (this->getOwnerDocument() != 0) {
- Ranges* ranges = ((DOMDocumentImpl *)this->getOwnerDocument())->getRanges();
+ if (doc != 0) {
+ Ranges* ranges = doc->getRanges();
if (ranges != 0) {
XMLSize_t sz = ranges->size();
if (sz != 0) {
@@ -137,7 +137,8 @@
const XMLCh* DOMTextImpl::getWholeText() const
{
- DOMTreeWalker* pWalker=getOwnerDocument()->createTreeWalker(getOwnerDocument()->getDocumentElement(), DOMNodeFilter::SHOW_ALL, NULL, true);
+ DOMDocument *doc = getOwnerDocument();
+ DOMTreeWalker* pWalker=doc->createTreeWalker(doc->getDocumentElement(), DOMNodeFilter::SHOW_ALL, NULL, true);
pWalker->setCurrentNode((DOMNode*)this);
// Logically-adjacent text nodes are Text or CDATASection nodes that can be visited sequentially in document order or in
// reversed document order without entering, exiting, or passing over Element, Comment, or ProcessingInstruction nodes.
@@ -165,7 +166,8 @@
DOMText* DOMTextImpl::replaceWholeText(const XMLCh* newText)
{
- DOMTreeWalker* pWalker=getOwnerDocument()->createTreeWalker(getOwnerDocument()->getDocumentElement(), DOMNodeFilter::SHOW_ALL, NULL, true);
+ DOMDocument *doc = getOwnerDocument();
+ DOMTreeWalker* pWalker=doc->createTreeWalker(doc->getDocumentElement(), DOMNodeFilter::SHOW_ALL, NULL, true);
pWalker->setCurrentNode((DOMNode*)this);
// Logically-adjacent text nodes are Text or CDATASection nodes that can be visited sequentially in document order or in
// reversed document order without entering, exiting, or passing over Element, Comment, or ProcessingInstruction nodes.
@@ -186,7 +188,7 @@
break;
if(nextNode->getNodeType()==ENTITY_REFERENCE_NODE)
{
- DOMTreeWalker* pInnerWalker=getOwnerDocument()->createTreeWalker(nextNode, DOMNodeFilter::SHOW_ALL, NULL, true);
+ DOMTreeWalker* pInnerWalker=doc->createTreeWalker(nextNode, DOMNodeFilter::SHOW_ALL, NULL, true);
while(pInnerWalker->nextNode())
{
short nodeType=pInnerWalker->getCurrentNode()->getNodeType();
@@ -208,9 +210,9 @@
else
{
if(getNodeType()==TEXT_NODE)
- retVal=getOwnerDocument()->createTextNode(newText);
+ retVal=doc->createTextNode(newText);
else
- retVal=getOwnerDocument()->createCDATASection(newText);
+ retVal=doc->createCDATASection(newText);
pFirstTextNode->getParentNode()->insertBefore(retVal, pFirstTextNode);
}
}
Modified: xerces/c/trunk/src/xercesc/dom/impl/XSDElementNSImpl.cpp
URL: http://svn.apache.org/viewvc/xerces/c/trunk/src/xercesc/dom/impl/XSDElementNSImpl.cpp?rev=678381&r1=678380&r2=678381&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/dom/impl/XSDElementNSImpl.cpp (original)
+++ xerces/c/trunk/src/xercesc/dom/impl/XSDElementNSImpl.cpp Mon Jul 21 03:15:01 2008
@@ -54,7 +54,7 @@
}
DOMNode * XSDElementNSImpl::cloneNode(bool deep) const {
- DOMNode* newNode = new (getOwnerDocument()) XSDElementNSImpl(*this, deep);
+ DOMNode* newNode = new (fParent.fOwnerDocument) XSDElementNSImpl(*this, deep);
fNode.callUserDataHandlers(DOMUserDataHandler::NODE_CLONED, this, newNode);
return newNode;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xerces.apache.org
For additional commands, e-mail: commits-help@xerces.apache.org