tng 2002/08/20 10:27:10
Modified: c/src/xercesc/dom/impl DOMTreeWalkerImpl.cpp
Log:
[Bug 11515] Exponential time using DOMTreeWalker. Patch from Benjamin Piwowarski.
Revision Changes Path
1.4 +4 -4 xml-xerces/c/src/xercesc/dom/impl/DOMTreeWalkerImpl.cpp
Index: DOMTreeWalkerImpl.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/dom/impl/DOMTreeWalkerImpl.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- DOMTreeWalkerImpl.cpp 25 Jun 2002 20:08:39 -0000 1.3
+++ DOMTreeWalkerImpl.cpp 20 Aug 2002 17:27:10 -0000 1.4
@@ -360,7 +360,7 @@
else
if (accept == DOMNodeFilter::FILTER_SKIP) {
DOMNode* fChild = getFirstChild(newNode);
- if (!fChild) {
+ if (!fChild && !newNode->hasChildNodes()) {
return getNextSibling(newNode);
}
return fChild;
@@ -402,7 +402,7 @@
else
if (accept == DOMNodeFilter::FILTER_SKIP) {
DOMNode* fChild = getLastChild(newNode);
- if (!fChild) {
+ if (!fChild && !newNode->hasChildNodes()) {
return getPreviousSibling(newNode);
}
return fChild;
@@ -436,6 +436,7 @@
return getFirstChild(newNode);
}
return getNextSibling(newNode);
+
}
@@ -463,7 +464,6 @@
return getLastChild(newNode);
}
return getPreviousSibling(newNode);
-
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]