dbertoni 2003/10/25 17:51:16
Modified: c/src/xalanc/XalanExtensions FunctionNodeSet.cpp
Log:
Refactored result tree fragments to use XalanDocumentFragment instead of
ResultTreeFragBase. This is because the node-set() extension exposes some
awkward problems with the implementation. This also simplifies things, so
although it changes our XObject interface, in the end, it's much cleaner.
Fixes Bugzilla 23778.
Revision Changes Path
1.3 +11 -13
xml-xalan/c/src/xalanc/XalanExtensions/FunctionNodeSet.cpp
Index: FunctionNodeSet.cpp
===================================================================
RCS file:
/home/cvs/xml-xalan/c/src/xalanc/XalanExtensions/FunctionNodeSet.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- FunctionNodeSet.cpp 19 Sep 2003 21:05:34 -0000 1.2
+++ FunctionNodeSet.cpp 26 Oct 2003 00:51:16 -0000 1.3
@@ -60,9 +60,7 @@
#include <xalanc/XPath/XNodeSetBase.hpp>
#include <xalanc/XPath/XObjectFactory.hpp>
-
-
-#include <xalanc/XSLT/ResultTreeFragBaseNodeRefListBaseProxy.hpp>
+#include <xalanc/XPath/XalanDocumentFragmentNodeRefListBaseProxy.hpp>
@@ -70,18 +68,18 @@
-class ResultTreeFragBaseXNodeSetBaseProxy : public XNodeSetBase
+class XalanDocumentFragmentXNodeSetBaseProxy : public XNodeSetBase
{
public:
- ResultTreeFragBaseXNodeSetBaseProxy(const XObjectPtr& theXObject) :
+ XalanDocumentFragmentXNodeSetBaseProxy(const XObjectPtr&
theXObject) :
XNodeSetBase(),
m_xobject(theXObject),
m_proxy(theXObject->rtree())
{
}
- ResultTreeFragBaseXNodeSetBaseProxy(const
ResultTreeFragBaseXNodeSetBaseProxy& theSource) :
+ XalanDocumentFragmentXNodeSetBaseProxy(const
XalanDocumentFragmentXNodeSetBaseProxy& theSource) :
XNodeSetBase(theSource),
m_xobject(theSource.m_xobject),
m_proxy(theSource.m_proxy)
@@ -89,7 +87,7 @@
}
virtual
- ~ResultTreeFragBaseXNodeSetBaseProxy()
+ ~XalanDocumentFragmentXNodeSetBaseProxy()
{
}
@@ -97,17 +95,17 @@
#if defined(XALAN_NO_COVARIANT_RETURN_TYPE)
virtual XObject*
#else
- virtual ResultTreeFragBaseXNodeSetBaseProxy*
+ virtual XalanDocumentFragmentXNodeSetBaseProxy*
#endif
clone(void* theAddress = 0) const
{
if (theAddress == 0)
{
- return new ResultTreeFragBaseXNodeSetBaseProxy(*this);
+ return new
XalanDocumentFragmentXNodeSetBaseProxy(*this);
}
else
{
- return new (theAddress)
ResultTreeFragBaseXNodeSetBaseProxy(*this);
+ return new (theAddress)
XalanDocumentFragmentXNodeSetBaseProxy(*this);
}
}
@@ -137,9 +135,9 @@
private:
- const XObjectPtr
m_xobject;
+ const XObjectPtr
m_xobject;
- const ResultTreeFragBaseNodeRefListBaseProxy m_proxy;
+ const XalanDocumentFragmentNodeRefListBaseProxy m_proxy;
};
@@ -176,7 +174,7 @@
if (theType == XObject::eTypeResultTreeFrag ||
(theType == XObject::eTypeString && m_convertString == true))
{
- return XObjectPtr(new
ResultTreeFragBaseXNodeSetBaseProxy(args[0]));
+ return XObjectPtr(new
XalanDocumentFragmentXNodeSetBaseProxy(args[0]));
}
else
{
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]