dbertoni 01/07/17 21:24:59
Modified: c/src/XPath XResultTreeFrag.cpp
Log:
Fixed bugs with interpreting ResultTreeFrags as node-sets.
Revision Changes Path
1.24 +5 -61 xml-xalan/c/src/XPath/XResultTreeFrag.cpp
Index: XResultTreeFrag.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/XResultTreeFrag.cpp,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- XResultTreeFrag.cpp 2001/06/14 19:12:24 1.23
+++ XResultTreeFrag.cpp 2001/07/18 04:24:59 1.24
@@ -257,16 +257,7 @@
XalanNode*
XResultTreeFrag::item(unsigned int index) const
{
- assert(m_value.get() != 0);
-
- XalanNode* theCurrentChild = m_value->getFirstChild();
-
- for(unsigned int i = 0; i < index && theCurrentChild != 0; ++i)
- {
- theCurrentChild = theCurrentChild->getNextSibling();
- }
-
- return theCurrentChild;
+ return index == 0 ? m_value.get() : 0;
}
@@ -275,20 +266,6 @@
XResultTreeFrag::getLength() const
{
return 1;
- assert(m_value.get() != 0);
-
- unsigned int theLength = 0;
-
- XalanNode* theCurrentChild = m_value->getFirstChild();
-
- while(theCurrentChild != 0)
- {
- ++theLength;
-
- theCurrentChild = theCurrentChild->getNextSibling();
- }
-
- return theLength;
}
@@ -296,26 +273,7 @@
unsigned int
XResultTreeFrag::indexOf(const XalanNode* theNode) const
{
- unsigned theIndex = 0;
- bool fFound = false;
-
- XalanNode* theCurrentChild = m_value->getFirstChild();
-
- while(theCurrentChild != 0 && fFound == false)
- {
- if (theCurrentChild == theNode)
- {
- fFound = true;
- }
- else
- {
- ++theIndex;
-
- theCurrentChild = theCurrentChild->getNextSibling();
- }
- }
-
- return fFound == true ? theIndex : NodeRefListBase::npos;
+ return theNode == m_value.get() ? 0 : NodeRefListBase::npos;
}
@@ -337,14 +295,7 @@
XalanNode*
XResultTreeFrag::NodeRefListBaseProxy::item(unsigned int index) const
{
- if (index == 0)
- {
- return m_xresultTreeFrag.m_value.get();
- }
- else
- {
- return 0;
- }
+ return m_xresultTreeFrag.item(index);
}
@@ -352,7 +303,7 @@
unsigned int
XResultTreeFrag::NodeRefListBaseProxy::getLength() const
{
- return 1;
+ return m_xresultTreeFrag.getLength();
}
@@ -360,14 +311,7 @@
unsigned int
XResultTreeFrag::NodeRefListBaseProxy::indexOf(const XalanNode*
theNode) const
{
- if (theNode == m_xresultTreeFrag.m_value.get())
- {
- return 0;
- }
- else
- {
- return NodeRefListBase::npos;
- }
+ return m_xresultTreeFrag.indexOf(theNode);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]