dbertoni 00/08/22 13:20:59
Modified: c/src/XPath FunctionID.hpp NameSpace.hpp QName.cpp QName.hpp
SimpleNodeLocator.hpp XNodeSet.cpp XNodeSet.hpp
XObjectFactoryDefault.hpp XPathExecutionContext.hpp
XPathExecutionContextDefault.cpp
XPathExecutionContextDefault.hpp
XPathExpression.cpp XPathFactoryDefault.cpp
XPathProcessorImpl.hpp XPathSupportDefault.cpp
XResultTreeFrag.cpp XResultTreeFrag.hpp XString.cpp
XString.hpp
Log:
Changes for AIX port.
Revision Changes Path
1.13 +5 -1 xml-xalan/c/src/XPath/FunctionID.hpp
Index: FunctionID.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/FunctionID.hpp,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- FunctionID.hpp 2000/08/15 19:43:18 1.12
+++ FunctionID.hpp 2000/08/22 20:20:45 1.13
@@ -141,7 +141,11 @@
// Get the context document, so we can search for nodes.
const XalanDocument* const theDocContext =
context->getNodeType() == XalanNode::DOCUMENT_NODE ?
-
reinterpret_cast<const XalanDocument*>(context) :
+#if defined(XALAN_OLD_STYLE_CASTS)
+
(const XalanDocument*)context :
+#else
+
static_cast<const XalanDocument*>(context) :
+#endif
context->getOwnerDocument();
assert(theDocContext != 0);
1.4 +0 -4 xml-xalan/c/src/XPath/NameSpace.hpp
Index: NameSpace.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/NameSpace.hpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- NameSpace.hpp 2000/04/11 14:46:09 1.3
+++ NameSpace.hpp 2000/08/22 20:20:45 1.4
@@ -64,10 +64,6 @@
-#include <memory>
-
-
-
#include <XalanDOM/XalanDOMString.hpp>
1.9 +0 -1 xml-xalan/c/src/XPath/QName.cpp
Index: QName.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/QName.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- QName.cpp 2000/04/18 15:30:39 1.8
+++ QName.cpp 2000/08/22 20:20:46 1.9
@@ -69,7 +69,6 @@
-#include "NameSpace.hpp"
#include "ElementPrefixResolverProxy.hpp"
#include "PrefixResolver.hpp"
#include "XPathSupport.hpp"
1.8 +4 -1 xml-xalan/c/src/XPath/QName.hpp
Index: QName.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/QName.hpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- QName.hpp 2000/04/11 14:46:10 1.7
+++ QName.hpp 2000/08/22 20:20:46 1.8
@@ -76,8 +76,11 @@
+#include <XPath/NameSpace.hpp>
+
+
+
class XalanElement;
-class NameSpace;
class PrefixResolver;
class XPathEnvSupport;
class XPathSupport;
1.10 +1 -0 xml-xalan/c/src/XPath/SimpleNodeLocator.hpp
Index: SimpleNodeLocator.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/SimpleNodeLocator.hpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- SimpleNodeLocator.hpp 2000/08/15 19:43:19 1.9
+++ SimpleNodeLocator.hpp 2000/08/22 20:20:46 1.10
@@ -128,6 +128,7 @@
* @param xpath The xpath that is executing
* @param context The current source tree context node
* @param opPos The current position in the xpath operation map array
+ * @param scoreHolder a reference to a double to receive the result.
* @return the last matched context node
*/
XalanNode*
1.14 +0 -14 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.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- XNodeSet.cpp 2000/08/14 16:33:55 1.13
+++ XNodeSet.cpp 2000/08/22 20:20:47 1.14
@@ -194,12 +194,6 @@
-#if !defined(XALAN_NO_NAMESPACES)
-using std::auto_ptr;
-#endif
-
-
-
const ResultTreeFragBase&
XNodeSet::rtree(XPathExecutionContext& executionContext) const
{
@@ -218,18 +212,10 @@
theFrag->appendChild(m_value->item(i)->cloneNode(true));
}
-#if defined(XALAN_OLD_AUTO_PTR)
-#if defined(XALAN_NO_MUTABLE)
- ((XNodeSet*)this)->m_resultTreeFrag =
auto_ptr<ResultTreeFragBase>(theFrag);
-#else
- m_resultTreeFrag = auto_ptr<ResultTreeFragBase>(theFrag);
-#endif
-#else
#if defined(XALAN_NO_MUTABLE)
((XNodeSet*)this)->m_resultTreeFrag.reset(theFrag);
#else
m_resultTreeFrag.reset(theFrag);
-#endif
#endif
}
1.14 +9 -6 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.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- XNodeSet.hpp 2000/08/14 16:33:55 1.13
+++ XNodeSet.hpp 2000/08/22 20:20:47 1.14
@@ -64,10 +64,16 @@
-#include <memory>
+#if defined(XALAN_AUTO_PTR_REQUIRES_DEFINITION)
+#include <XPath/ResultTreeFragBase.hpp>
+#endif
+
+
+#include <PlatformSupport/XalanAutoPtr.hpp>
+
// Base class header file.
#include <XPath/XObject.hpp>
@@ -77,6 +83,7 @@
+class ResultTreeFragBase;
class XalanNode;
@@ -157,11 +164,7 @@
const BorrowReturnMutableNodeRefList m_value;
-#if defined(XALAN_NO_NAMESPACES)
- mutable auto_ptr<ResultTreeFragBase> m_resultTreeFrag;
-#else
- mutable std::auto_ptr<ResultTreeFragBase> m_resultTreeFrag;
-#endif
+ mutable XalanAutoPtr<ResultTreeFragBase> m_resultTreeFrag;
mutable XalanDOMString
m_cachedStringValue;
1.12 +12 -7 xml-xalan/c/src/XPath/XObjectFactoryDefault.hpp
Index: XObjectFactoryDefault.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/XObjectFactoryDefault.hpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- XObjectFactoryDefault.hpp 2000/08/15 19:43:19 1.11
+++ XObjectFactoryDefault.hpp 2000/08/22 20:20:47 1.12
@@ -64,7 +64,6 @@
-#include <memory>
#include <set>
@@ -74,6 +73,16 @@
+#if defined(XALAN_AUTO_PTR_REQUIRES_DEFINITION)
+#include <XPath/XNull.hpp>
+#endif
+
+
+
+#include <PlatformSupport/XalanAutoPtr.hpp>
+
+
+
class XNull;
@@ -232,13 +241,9 @@
// Data members...
- CollectionType m_xobjects;
+ CollectionType m_xobjects;
-#if defined(XALAN_NO_NAMESPACES)
- const auto_ptr<XNull> m_XNull;
-#else
- const std::auto_ptr<XNull> m_XNull;
-#endif
+ const XalanAutoPtr<XNull> m_XNull;
#if !defined(NDEBUG)
1.21 +18 -9 xml-xalan/c/src/XPath/XPathExecutionContext.hpp
Index: XPathExecutionContext.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/XPathExecutionContext.hpp,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- XPathExecutionContext.hpp 2000/08/14 22:07:24 1.20
+++ XPathExecutionContext.hpp 2000/08/22 20:20:48 1.21
@@ -117,6 +117,13 @@
~XPathExecutionContext();
/**
+ * Reset the instance. This must be called before another
+ * execution is attempted.
+ */
+ virtual void
+ reset() = 0;
+
+ /**
* Retrieve the node currently being executed.
*
* @return current node
@@ -461,7 +468,7 @@
assert(m_mutableNodeRefList != 0);
}
- // N.B. Non-const copy constructor semantics (like
std::auto_ptr)
+#if defined(XALAN_CANNOT_MUTATE_ANONYMOUS_OBJECT)
BorrowReturnMutableNodeRefList(const
BorrowReturnMutableNodeRefList& theSource) :
m_xpathExecutionContext(theSource.m_xpathExecutionContext),
m_mutableNodeRefList(theSource.m_mutableNodeRefList)
@@ -470,15 +477,17 @@
((BorrowReturnMutableNodeRefList&)theSource).m_mutableNodeRefList = 0;
}
-
-// BorrowReturnMutableNodeRefList(const
BorrowReturnMutableNodeRefList& theSource) :
-//
m_xpathExecutionContext(theSource.m_xpathExecutionContext),
-// m_mutableNodeRefList(theSource.m_mutableNodeRefList)
-// {
-// assert(m_mutableNodeRefList != 0);
+#else
+ // N.B. Non-const copy constructor semantics (like
std::auto_ptr)
+ BorrowReturnMutableNodeRefList(BorrowReturnMutableNodeRefList&
theSource) :
+
m_xpathExecutionContext(theSource.m_xpathExecutionContext),
+ m_mutableNodeRefList(theSource.m_mutableNodeRefList)
+ {
+ assert(m_mutableNodeRefList != 0);
-// theSource.m_mutableNodeRefList = 0;
-// }
+ theSource.m_mutableNodeRefList = 0;
+ }
+#endif
~BorrowReturnMutableNodeRefList()
{
1.19 +15 -1 xml-xalan/c/src/XPath/XPathExecutionContextDefault.cpp
Index: XPathExecutionContextDefault.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/XPathExecutionContextDefault.cpp,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- XPathExecutionContextDefault.cpp 2000/08/14 22:07:25 1.18
+++ XPathExecutionContextDefault.cpp 2000/08/22 20:20:48 1.19
@@ -108,6 +108,18 @@
XPathExecutionContextDefault::~XPathExecutionContextDefault()
{
+ reset();
+}
+
+
+
+void
+XPathExecutionContextDefault::reset()
+{
+ m_xpathEnvSupport.reset();
+ m_xpathSupport.reset();
+ m_xobjectFactory.reset();
+
assert(m_busyCachedNodeLists.size() == 0);
assert(m_argVectorsStackPosition == m_argVectorsStack.begin() ||
m_argVectorsStack.size() == 0);
@@ -121,6 +133,8 @@
m_availableCachedNodeLists.end(),
DeleteFunctor<MutableNodeRefList>());
+ m_availableCachedNodeLists.clear();
+
m_argVectorsStack.clear();
m_argVectorsStackPosition = m_argVectorsStack.end();
@@ -338,7 +352,7 @@
}
else
{
- m_argVectorsStackPosition->clear();
+ (*m_argVectorsStackPosition).clear();
--m_argVectorsStackPosition;
}
1.20 +3 -0 xml-xalan/c/src/XPath/XPathExecutionContextDefault.hpp
Index: XPathExecutionContextDefault.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/XPathExecutionContextDefault.hpp,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- XPathExecutionContextDefault.hpp 2000/08/14 22:07:25 1.19
+++ XPathExecutionContextDefault.hpp 2000/08/22 20:20:48 1.20
@@ -122,6 +122,9 @@
// These interfaces are inherited from XPathExecutionContext...
+ virtual void
+ reset();
+
virtual XalanNode*
getCurrentNode() const;
1.14 +13 -12 xml-xalan/c/src/XPath/XPathExpression.cpp
Index: XPathExpression.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/XPathExpression.cpp,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- XPathExpression.cpp 2000/08/15 19:43:19 1.13
+++ XPathExpression.cpp 2000/08/22 20:20:49 1.14
@@ -115,15 +115,15 @@
using std::ostrstream;
#endif
- ostrstream theFormatter;
+ char theBuffer[50];
+ ostrstream theFormatter(theBuffer, sizeof(theBuffer));
+
theFormatter << "Invalid op code "
<< theOpCode
<< " was detected."
<< '\0';
- theFormatter.freeze(false);
-
return theFormatter.str();
}
@@ -155,8 +155,10 @@
using std::ostrstream;
#endif
- ostrstream theFormatter;
+ char theBuffer[200];
+ ostrstream theFormatter(theBuffer, sizeof(theBuffer));
+
theFormatter << "An invalid number of arguments for op code "
<< theOpCode
<< " was detected. "
@@ -167,8 +169,6 @@
<< " arguments(s) were supplied."
<< '\0';
- theFormatter.freeze(false);
-
return theFormatter.str();
}
@@ -197,8 +197,10 @@
#if !defined(XALAN_NO_NAMESPACES)
using std::ostrstream;
#endif
+
+ char theBuffer[100];
- ostrstream theFormatter;
+ ostrstream theFormatter(theBuffer, sizeof(theBuffer));
theFormatter << "An invalid argument of "
<< theValue
@@ -207,8 +209,6 @@
<< "."
<< '\0';
- theFormatter.freeze(false);
-
return theFormatter.str();
}
@@ -233,8 +233,10 @@
#if !defined(XALAN_NO_NAMESPACES)
using std::ostrstream;
#endif
+
+ char theBuffer[100];
- ostrstream theFormatter;
+ ostrstream theFormatter(theBuffer, sizeof(theBuffer));
theFormatter << "An invalid offset of "
<< theOffset
@@ -558,8 +560,7 @@
}
}
- assert(opCodeMapSize() ==
- static_cast<OpCodeMapSizeType>(opCodeMapLength()));
+ assert(opCodeMapSize() == OpCodeMapSizeType(opCodeMapLength()));
}
1.7 +4 -0 xml-xalan/c/src/XPath/XPathFactoryDefault.cpp
Index: XPathFactoryDefault.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/XPathFactoryDefault.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- XPathFactoryDefault.cpp 2000/07/12 21:46:51 1.6
+++ XPathFactoryDefault.cpp 2000/08/22 20:20:49 1.7
@@ -116,7 +116,11 @@
m_xpaths.erase(i);
}
+#if defined(XALAN_CANNOT_DELETE_CONST)
+ delete (XPath*)theXPath;
+#else
delete theXPath;
+#endif
return true;
}
1.8 +24 -8 xml-xalan/c/src/XPath/XPathProcessorImpl.hpp
Index: XPathProcessorImpl.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/XPathProcessorImpl.hpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- XPathProcessorImpl.hpp 2000/08/10 18:37:39 1.7
+++ XPathProcessorImpl.hpp 2000/08/22 20:20:49 1.8
@@ -96,16 +96,32 @@
public:
#if defined(XALAN_NO_NAMESPACES)
-# define XALAN_STD
+ typedef map<XalanDOMString,
+ int,
+ less<XalanDOMString> > KeywordsMapType;
+ typedef map<XalanDOMString,
+ XPathExpression::eOpCodes,
+ less<XalanDOMString> >
FunctionNameMapType;
+ typedef map<XalanDOMString,
+ XPathExpression::eOpCodes,
+ less<XalanDOMString> >
AxisNamesMapType;
+ typedef map<XalanDOMString,
+ XPathExpression::eOpCodes,
+ less<XalanDOMString> >
NodeTypesMapType;
+
+ typedef vector<XalanDOMString> DOMStringVectorType;
#else
-# define XALAN_STD std::
+ typedef std::map<XalanDOMString,
+ int>
KeywordsMapType;
+ typedef std::map<XalanDOMString,
+ XPathExpression::eOpCodes>
FunctionNameMapType;
+ typedef std::map<XalanDOMString,
+ XPathExpression::eOpCodes>
AxisNamesMapType;
+ typedef std::map<XalanDOMString,
+ XPathExpression::eOpCodes>
NodeTypesMapType;
+
+ typedef std::vector<XalanDOMString>
DOMStringVectorType;
#endif
- typedef XALAN_STD map<XalanDOMString, int>
KeywordsMapType;
- typedef XALAN_STD map<XalanDOMString, XPathExpression::eOpCodes>
FunctionNameMapType;
- typedef XALAN_STD map<XalanDOMString, XPathExpression::eOpCodes>
AxisNamesMapType;
- typedef XALAN_STD map<XalanDOMString, XPathExpression::eOpCodes>
NodeTypesMapType;
- typedef XALAN_STD vector<XalanDOMString>
DOMStringVectorType;
-#undef XALAN_STD
explicit
1.10 +4 -0 xml-xalan/c/src/XPath/XPathSupportDefault.cpp
Index: XPathSupportDefault.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/XPathSupportDefault.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- XPathSupportDefault.cpp 2000/06/01 16:27:23 1.9
+++ XPathSupportDefault.cpp 2000/08/22 20:20:50 1.10
@@ -220,7 +220,11 @@
if (theNode != 0 && theNode->getNodeType() ==
XalanNode::ENTITY_NODE)
{
const XalanEntity* theEntity =
+#if defined(XALAN_OLD_STYLE_CASTS)
+ (const XalanEntity*)theNode;
+#else
static_cast<const
XalanEntity*>(theNode);
+#endif
const XalanDOMString
theNotationName(theEntity->getNotationName());
1.12 +1 -1 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.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- XResultTreeFrag.cpp 2000/08/15 19:43:19 1.11
+++ XResultTreeFrag.cpp 2000/08/22 20:20:50 1.12
@@ -140,7 +140,7 @@
if (m_cachedNumberValue == 0.0)
{
#if defined(XALAN_NO_MUTABLE)
- ((XNodeSet*)this)->m_cachedNumberValue =
DoubleSupport::toDouble(str());
+ ((XResultTreeFrag*)this)->m_cachedNumberValue =
DoubleSupport::toDouble(str());
#else
m_cachedNumberValue = DoubleSupport::toDouble(str());
#endif
1.12 +13 -10 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.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- XResultTreeFrag.hpp 2000/08/10 18:37:40 1.11
+++ XResultTreeFrag.hpp 2000/08/22 20:20:50 1.12
@@ -64,20 +64,27 @@
-#include <memory>
+#include <XalanDOM/XalanDOMString.hpp>
-// Base class header file.
-#include <XPath/XObject.hpp>
-#include <XPath/NodeRefListBase.hpp>
+#if defined(XALAN_AUTO_PTR_NEEDS_DEFINITION)
+#include <XPath/ResultTreeFragBase.hpp>
+#endif
-#include <XalanDOM/XalanDOMString.hpp>
+#include <PlatformSupport/XalanAutoPtr.hpp>
+
+// Base class header file.
+#include <XPath/XObject.hpp>
+#include <XPath/NodeRefListBase.hpp>
+
+
+class ResultTreeFragBase;
class XPathSupport;
@@ -161,11 +168,7 @@
virtual NodeRefListBase*
clone() const;
-#if defined(XALAN_NO_NAMESPACES)
- auto_ptr<ResultTreeFragBase> m_value;
-#else
- std::auto_ptr<ResultTreeFragBase> m_value;
-#endif
+ XalanAutoPtr<ResultTreeFragBase> m_value;
mutable XalanDOMString m_cachedStringValue;
1.12 +0 -16 xml-xalan/c/src/XPath/XString.cpp
Index: XString.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/XString.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- XString.cpp 2000/08/10 18:37:40 1.11
+++ XString.cpp 2000/08/22 20:20:51 1.12
@@ -180,26 +180,10 @@
theFrag->appendChild(textNode);
-#if defined(XALAN_OLD_AUTO_PTR)
-
-#if !defined (XALAN_NO_NAMESPACES)
- using std::auto_ptr;
-#endif
-
#if defined(XALAN_NO_MUTABLE)
- ((XString*)this)->m_resultTreeFrag =
auto_ptr<ResultTreeFragBase>(theFrag);
-#else
- m_resultTreeFrag = auto_ptr<ResultTreeFragBase>(theFrag);
-#endif
-
-#else
-
-#if defined(XALAN_NO_MUTABLE)
((XString*)this)->m_resultTreeFrag.reset(theFrag);
#else
m_resultTreeFrag.reset(theFrag);
-#endif
-
#endif
}
1.11 +9 -16 xml-xalan/c/src/XPath/XString.hpp
Index: XString.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/XString.hpp,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- XString.hpp 2000/08/10 18:37:40 1.10
+++ XString.hpp 2000/08/22 20:20:51 1.11
@@ -64,12 +64,17 @@
-// Standard header files.
-#include <memory>
+#include <XalanDOM/XalanDOMString.hpp>
-#include <XalanDOM/XalanDOMString.hpp>
+#if defined(XALAN_AUTO_PTR_REQUIRES_DEFINITION)
+#include <XPath/ResultTreeFragBase.hpp>
+#endif
+
+
+
+#include <PlatformSupport/XalanAutoPtr.hpp>
@@ -140,19 +145,7 @@
mutable double
m_cachedNumberValue;
-#if defined(XALAN_NO_NAMESPACES)
-#if defined(XALAN_NO_MUTABLE)
- auto_ptr<ResultTreeFragBase>
m_resultTreeFrag;
-#else
- mutable auto_ptr<ResultTreeFragBase> m_resultTreeFrag;
-#endif
-#else
-#if defined(XALAN_NO_MUTABLE)
- std::auto_ptr<ResultTreeFragBase>
m_resultTreeFrag;
-#else
- mutable std::auto_ptr<ResultTreeFragBase> m_resultTreeFrag;
-#endif
-#endif
+ mutable XalanAutoPtr<ResultTreeFragBase> m_resultTreeFrag;
};