You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by db...@apache.org on 2001/01/16 03:32:40 UTC
cvs commit: xml-xalan/c/src/XPath XNodeSet.cpp XNodeSet.hpp XResultTreeFrag.cpp XResultTreeFrag.hpp XResultTreeFragAllocator.cpp XResultTreeFragAllocator.hpp XStringBase.cpp
dbertoni 01/01/15 18:32:40
Modified: c/src/XPath XNodeSet.cpp XNodeSet.hpp XResultTreeFrag.cpp
XResultTreeFrag.hpp XResultTreeFragAllocator.cpp
XResultTreeFragAllocator.hpp XStringBase.cpp
Log:
Changes to allow re-use of ResultTreeFragments.
Revision Changes Path
1.20 +2 -2 xml-xalan/c/src/XPath/XNodeSet.cpp
Index: XNodeSet.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/XNodeSet.cpp,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- XNodeSet.cpp 2000/12/04 20:48:17 1.19
+++ XNodeSet.cpp 2001/01/16 02:32:39 1.20
@@ -185,13 +185,13 @@
assert(theFactory != 0);
ResultTreeFrag* const theFrag =
- new ResultTreeFrag(*theFactory);
+ new ResultTreeFrag(theFactory);
const int nNodes = m_value->getLength();
for(int i = 0; i < nNodes; i++)
{
- theFrag->appendChild(m_value->item(i)->cloneNode(true));
+ theFrag->appendChild(m_value->item(i));
}
#if defined(XALAN_NO_MUTABLE)
1.17 +0 -3 xml-xalan/c/src/XPath/XNodeSet.hpp
Index: XNodeSet.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/XNodeSet.hpp,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- XNodeSet.hpp 2000/11/02 01:46:00 1.16
+++ XNodeSet.hpp 2001/01/16 02:32:39 1.17
@@ -76,9 +76,6 @@
// Base class header file.
#include <XPath/XObject.hpp>
-
-
-
#include <XPath/XPathExecutionContext.hpp>
1.18 +2 -2 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.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- XResultTreeFrag.cpp 2001/01/08 18:28:26 1.17
+++ XResultTreeFrag.cpp 2001/01/16 02:32:39 1.18
@@ -79,7 +79,7 @@
-XResultTreeFrag::XResultTreeFrag(ResultTreeFragBase* val) :
+XResultTreeFrag::XResultTreeFrag(BorrowReturnResultTreeFrag& val) :
XObject(eTypeResultTreeFrag),
m_value(val),
m_cachedStringValue(),
@@ -94,7 +94,7 @@
const XResultTreeFrag& source,
bool deepClone) :
XObject(source),
- m_value(source.m_value->clone(deepClone)),
+ m_value(source.m_value.clone(deepClone)),
m_cachedStringValue(source.m_cachedStringValue),
m_cachedNumberValue(source.m_cachedNumberValue),
m_nodeRefListBaseProxy(*this)
1.18 +14 -7 xml-xalan/c/src/XPath/XResultTreeFrag.hpp
Index: XResultTreeFrag.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/XResultTreeFrag.hpp,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- XResultTreeFrag.hpp 2001/01/08 18:28:26 1.17
+++ XResultTreeFrag.hpp 2001/01/16 02:32:39 1.18
@@ -79,11 +79,15 @@
// Base class header file.
-#include <XPath/XObject.hpp>
#include <XPath/NodeRefListBase.hpp>
+#include <XPath/XObject.hpp>
+
+
+#include <XPath/XPathExecutionContext.hpp>
+
class ResultTreeFragBase;
class XResultTreeFrag;
@@ -92,12 +96,15 @@
{
public:
+ typedef XPathExecutionContext::BorrowReturnResultTreeFrag BorrowReturnResultTreeFrag;
+
+
/**
* Construct an XResultTreeFrag object from a result tree fragment
*
- * @param val source result tree fragment. The XResultTreeFrag instance will adopt the object.
+ * @param val source result tree fragment. The XResultTreeFrag instance will adopt the object.
*/
- XResultTreeFrag(ResultTreeFragBase* val);
+ XResultTreeFrag(BorrowReturnResultTreeFrag& val);
/**
* Construct an XResultTreeFrag object from another
@@ -187,13 +194,13 @@
};
// Data members...
- XalanAutoPtr<ResultTreeFragBase> m_value;
+ BorrowReturnResultTreeFrag m_value;
- mutable XalanDOMString m_cachedStringValue;
+ mutable XalanDOMString m_cachedStringValue;
- mutable double m_cachedNumberValue;
+ mutable double m_cachedNumberValue;
- const NodeRefListBaseProxy m_nodeRefListBaseProxy;
+ const NodeRefListBaseProxy m_nodeRefListBaseProxy;
};
1.2 +2 -2 xml-xalan/c/src/XPath/XResultTreeFragAllocator.cpp
Index: XResultTreeFragAllocator.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/XResultTreeFragAllocator.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- XResultTreeFragAllocator.cpp 2000/10/13 21:24:02 1.1
+++ XResultTreeFragAllocator.cpp 2001/01/16 02:32:39 1.2
@@ -75,12 +75,12 @@
XResultTreeFragAllocator::data_type*
-XResultTreeFragAllocator::create(ResultTreeFragBase* thenResultTreeFragBase)
+XResultTreeFragAllocator::create(BorrowReturnResultTreeFrag& theValue)
{
data_type* const theBlock = m_allocator.allocateBlock();
assert(theBlock != 0);
- data_type* const theResult = new(theBlock) data_type(thenResultTreeFragBase);
+ data_type* const theResult = new(theBlock) data_type(theValue);
m_allocator.commitAllocation(theBlock);
1.2 +8 -8 xml-xalan/c/src/XPath/XResultTreeFragAllocator.hpp
Index: XResultTreeFragAllocator.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/XResultTreeFragAllocator.hpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- XResultTreeFragAllocator.hpp 2000/10/13 21:24:02 1.1
+++ XResultTreeFragAllocator.hpp 2001/01/16 02:32:39 1.2
@@ -77,6 +77,8 @@
{
public:
+ typedef XPathExecutionContext::BorrowReturnResultTreeFrag BorrowReturnResultTreeFrag;
+
typedef XResultTreeFrag data_type;
typedef ReusableArenaAllocator<data_type> ArenaAllocatorType;
@@ -92,21 +94,19 @@
~XResultTreeFragAllocator();
/**
- * Create an XResultTreeFrag object using allocator from a string.
+ * Create an XResultTreeFrag object using the allocator.
*
- * @param value source NodeRefListBase
+ * @param value source value
*
* @return pointer to a node
*/
data_type*
- create(ResultTreeFragBase* value);
+ create(BorrowReturnResultTreeFrag& value);
/**
- * Create an XResultTreeFrag object using allocator from a string.
+ * Create an XResultTreeFrag object using allocator the allocator.
*
- * @param theEnvSupport XPath environment support class instance
- * @param theSupport XPath support class instance
- * @param value source MutableNodeRefList
+ * @param value source XResultTreeFrag
*
* @return pointer to a node
*/
@@ -116,7 +116,7 @@
/**
* Clone an XResultTreeFrag object.
*
- * @param value source XResultTreeFrag
+ * @param value source XResultTreeFrag
*
* @return pointer to an XResultTreeFrag
*/
1.2 +1 -1 xml-xalan/c/src/XPath/XStringBase.cpp
Index: XStringBase.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/XStringBase.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- XStringBase.cpp 2000/12/21 04:23:07 1.1
+++ XStringBase.cpp 2001/01/16 02:32:39 1.2
@@ -143,7 +143,7 @@
assert(theFactory != 0);
ResultTreeFrag* const theFrag =
- new ResultTreeFrag(*theFactory);
+ new ResultTreeFrag(theFactory);
XalanNode* const textNode =
theFactory->createTextNode(str());