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...@locus.apache.org on 2000/09/19 17:00:27 UTC
cvs commit: xml-xalan/c/src/XPath FunctionContains.hpp FunctionLang.hpp FunctionString.hpp FunctionStringLength.hpp FunctionSubstring.hpp FunctionSubstringAfter.hpp FunctionSubstringBefore.hpp FunctionTranslate.hpp NodeRefList.hpp SimpleNodeLocator.cpp SimpleNodeLocator.hpp XBoolean.cpp XBoolean.hpp XNodeSet.cpp XNodeSet.hpp XNull.cpp XNull.hpp XNumber.cpp XNumber.hpp XObject.cpp XObject.hpp XObjectFactory.hpp XObjectFactoryDefault.cpp XPath.cpp XPathEnvSupportDefault.cpp XPathEnvSupportDefault.hpp XPathExecutionContext.hpp XPathExecutionContextDefault.cpp XPathExecutionContextDefault.hpp XPathExpression.cpp XPathExpression.hpp XPathFactory.hpp XPathFactoryDefault.cpp XPathInit.cpp XPathProcessorImpl.cpp XPathProcessorImpl.hpp XResultTreeFrag.cpp XResultTreeFrag.hpp XString.cpp XString.hpp XUnknown.cpp XUnknown.hpp
dbertoni 00/09/19 08:00:25
Modified: c/src/XPath FunctionContains.hpp FunctionLang.hpp
FunctionString.hpp FunctionStringLength.hpp
FunctionSubstring.hpp FunctionSubstringAfter.hpp
FunctionSubstringBefore.hpp FunctionTranslate.hpp
NodeRefList.hpp SimpleNodeLocator.cpp
SimpleNodeLocator.hpp XBoolean.cpp XBoolean.hpp
XNodeSet.cpp XNodeSet.hpp XNull.cpp XNull.hpp
XNumber.cpp XNumber.hpp XObject.cpp XObject.hpp
XObjectFactory.hpp XObjectFactoryDefault.cpp
XPath.cpp XPathEnvSupportDefault.cpp
XPathEnvSupportDefault.hpp
XPathExecutionContext.hpp
XPathExecutionContextDefault.cpp
XPathExecutionContextDefault.hpp
XPathExpression.cpp XPathExpression.hpp
XPathFactory.hpp XPathFactoryDefault.cpp
XPathInit.cpp XPathProcessorImpl.cpp
XPathProcessorImpl.hpp XResultTreeFrag.cpp
XResultTreeFrag.hpp XString.cpp XString.hpp
XUnknown.cpp XUnknown.hpp
Log:
Changes for AIX port and for output transcoding.
Revision Changes Path
1.7 +2 -2 xml-xalan/c/src/XPath/FunctionContains.hpp
Index: FunctionContains.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/FunctionContains.hpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- FunctionContains.hpp 2000/04/18 15:26:41 1.6
+++ FunctionContains.hpp 2000/09/19 14:53:45 1.7
@@ -109,8 +109,8 @@
context);
}
- const XalanDOMString arg1 = args[0]->str();
- const XalanDOMString arg2 = args[1]->str();
+ const XalanDOMString& arg1 = args[0]->str();
+ const XalanDOMString& arg2 = args[1]->str();
bool fResult = true;
1.8 +1 -1 xml-xalan/c/src/XPath/FunctionLang.hpp
Index: FunctionLang.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/FunctionLang.hpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- FunctionLang.hpp 2000/09/05 02:24:50 1.7
+++ FunctionLang.hpp 2000/09/19 14:53:46 1.8
@@ -119,7 +119,7 @@
bool fMatch = false;
- const XalanDOMString lang(args[0]->str());
+ const XalanDOMString& lang = args[0]->str();
while(0 != parent)
{
1.7 +7 -5 xml-xalan/c/src/XPath/FunctionString.hpp
Index: FunctionString.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/FunctionString.hpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- FunctionString.hpp 2000/04/18 15:26:42 1.6
+++ FunctionString.hpp 2000/09/19 14:54:06 1.7
@@ -103,7 +103,7 @@
int /* opPos */,
const XObjectArgVectorType& args)
{
- XalanDOMString theResult;
+ XObject* theResult = 0;
const XObjectArgVectorType::size_type theSize = args.size();
@@ -121,18 +121,20 @@
}
else
{
- theResult = getDefaultStringArgument(executionContext,
- *context);
+ theResult = executionContext.getXObjectFactory().createString(
+ getDefaultStringArgument(
+ executionContext,
+ *context));
}
}
else
{
assert(args[0] != 0);
- theResult = args[0]->str();
+ theResult = executionContext.getXObjectFactory().createString(args[0]->str());
}
- return executionContext.getXObjectFactory().createString(theResult);
+ return theResult;
}
#if defined(XALAN_NO_COVARIANT_RETURN_TYPE)
1.6 +5 -5 xml-xalan/c/src/XPath/FunctionStringLength.hpp
Index: FunctionStringLength.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/FunctionStringLength.hpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- FunctionStringLength.hpp 2000/04/18 15:26:42 1.5
+++ FunctionStringLength.hpp 2000/09/19 14:54:20 1.6
@@ -102,7 +102,7 @@
{
const XObjectArgVectorType::size_type theSize = args.size();
- XalanDOMString theResult;
+ unsigned int theLength = 0;
if(theSize == 0)
{
@@ -113,13 +113,13 @@
}
else
{
- theResult = getDefaultStringArgument(executionContext,
- *context);
+ theLength = length(getDefaultStringArgument(executionContext,
+ *context));
}
}
else if (theSize == 1)
{
- theResult = args[0]->str();
+ theLength = length(args[0]->str());
}
else
{
@@ -127,7 +127,7 @@
context);
}
- return executionContext.getXObjectFactory().createNumber(length(theResult));
+ return executionContext.getXObjectFactory().createNumber(theLength);
}
#if defined(XALAN_NO_COVARIANT_RETURN_TYPE)
1.6 +1 -1 xml-xalan/c/src/XPath/FunctionSubstring.hpp
Index: FunctionSubstring.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/FunctionSubstring.hpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- FunctionSubstring.hpp 2000/04/20 16:26:44 1.5
+++ FunctionSubstring.hpp 2000/09/19 14:54:50 1.6
@@ -114,7 +114,7 @@
context);
}
- const XalanDOMString theSourceString = args[0]->str();
+ const XalanDOMString& theSourceString = args[0]->str();
const unsigned int theSourceStringLength = length(theSourceString);
#if !defined(XALAN_NO_NAMESPACES)
1.5 +2 -2 xml-xalan/c/src/XPath/FunctionSubstringAfter.hpp
Index: FunctionSubstringAfter.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/FunctionSubstringAfter.hpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- FunctionSubstringAfter.hpp 2000/04/11 14:46:08 1.4
+++ FunctionSubstringAfter.hpp 2000/09/19 14:54:51 1.5
@@ -105,8 +105,8 @@
context);
}
- const XalanDOMString theFirstString = args[0]->str();
- const XalanDOMString theSecondString = args[1]->str();
+ const XalanDOMString& theFirstString = args[0]->str();
+ const XalanDOMString& theSecondString = args[1]->str();
const unsigned int theIndex = indexOf(theFirstString,
theSecondString);
1.5 +2 -2 xml-xalan/c/src/XPath/FunctionSubstringBefore.hpp
Index: FunctionSubstringBefore.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/FunctionSubstringBefore.hpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- FunctionSubstringBefore.hpp 2000/04/11 14:46:08 1.4
+++ FunctionSubstringBefore.hpp 2000/09/19 14:54:57 1.5
@@ -106,8 +106,8 @@
context);
}
- const XalanDOMString theFirstString = args[0]->str();
- const XalanDOMString theSecondString = args[1]->str();
+ const XalanDOMString& theFirstString = args[0]->str();
+ const XalanDOMString& theSecondString = args[1]->str();
const unsigned int theIndex = indexOf(theFirstString,
theSecondString);
1.6 +8 -11 xml-xalan/c/src/XPath/FunctionTranslate.hpp
Index: FunctionTranslate.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/FunctionTranslate.hpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- FunctionTranslate.hpp 2000/04/14 15:55:09 1.5
+++ FunctionTranslate.hpp 2000/09/19 14:55:17 1.6
@@ -109,9 +109,9 @@
context);
}
- const XalanDOMString theFirstString = args[0]->str();
- const XalanDOMString theSecondString = args[1]->str();
- const XalanDOMString theThirdString = args[2]->str();
+ const XalanDOMString& theFirstString = args[0]->str();
+ const XalanDOMString& theSecondString = args[1]->str();
+ const XalanDOMString& theThirdString = args[2]->str();
const unsigned int theFirstStringLength = length(theFirstString);
const unsigned int theSecondStringLength = length(theSecondString);
@@ -123,12 +123,12 @@
// A vector to contain the new characters. We'll use it to construct
// the result string.
- vector<XalanDOMChar> theVector;
+ vector<XalanDOMChar> theBuffer;
// The result string can only be as large as the first string, so
// just reserve the space now. Also reserve space for the
// terminating 0.
- theVector.reserve(theFirstStringLength + 1);
+ theBuffer.reserve(theFirstStringLength + 1);
for (unsigned int i = 0; i < theFirstStringLength; i++)
{
@@ -140,13 +140,13 @@
{
// Didn't find the character in the second string, so it
// is not translated.
- theVector.push_back(theCurrentChar);
+ theBuffer.push_back(theCurrentChar);
}
else if (theIndex < theThirdStringLength)
{
// OK, there's a corresponding character in the
// third string, so do the translation...
- theVector.push_back(charAt(theThirdString, theIndex));
+ theBuffer.push_back(charAt(theThirdString, theIndex));
}
else
{
@@ -158,10 +158,7 @@
}
}
- // Push a terminating 0.
- theVector.push_back(0);
-
- return executionContext.getXObjectFactory().createString(XalanDOMString(theVector.begin()));
+ return executionContext.getXObjectFactory().createString(XalanDOMString(theBuffer.begin(), theBuffer.size()));
}
#if defined(XALAN_NO_COVARIANT_RETURN_TYPE)
1.12 +6 -6 xml-xalan/c/src/XPath/NodeRefList.hpp
Index: NodeRefList.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/NodeRefList.hpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- NodeRefList.hpp 2000/08/15 19:43:18 1.11
+++ NodeRefList.hpp 2000/09/19 14:55:33 1.12
@@ -130,6 +130,12 @@
checkForDuplicates() const;
#endif
+#if defined(XALAN_NO_NAMESPACES)
+ typedef vector<XalanNode*> NodeListVectorType;
+#else
+ typedef std::vector<XalanNode*> NodeListVectorType;
+#endif
+
protected:
// Default vector allocation size. It seems high, but
@@ -138,12 +144,6 @@
{
eDefaultVectorSize = 100
};
-
-#if defined(XALAN_NO_NAMESPACES)
- typedef vector<XalanNode*> NodeListVectorType;
-#else
- typedef std::vector<XalanNode*> NodeListVectorType;
-#endif
/**
* Ensure that an allocation is either the default allocation
1.23 +8 -10 xml-xalan/c/src/XPath/SimpleNodeLocator.cpp
Index: SimpleNodeLocator.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/SimpleNodeLocator.cpp,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- SimpleNodeLocator.cpp 2000/08/15 19:43:18 1.22
+++ SimpleNodeLocator.cpp 2000/09/19 14:55:53 1.23
@@ -79,10 +79,12 @@
-SimpleNodeLocator SimpleNodeLocator::s_defaultInstance;
+SimpleNodeLocator SimpleNodeLocator::s_defaultInstance;
+const XalanDOMString SimpleNodeLocator::s_emptyString;
+
SimpleNodeLocator*
SimpleNodeLocator::getDefaultInstance()
{
@@ -612,11 +614,7 @@
const NodeRefListBase& nl = obj->nodeset();
- // Should this be adding in doc order?
- // We can not simply assign the nl value to
- // subQueryResults, because nl may be a ref to
- // a variable or the like, and we may mutate
- // below... which results in a hard-to-find bug!
+ // $$$ ToDo: Should this be adding in doc order?
subQueryResults.addNodes(nl);
return currentExpression.getOpCodeLength(opPos);
@@ -1435,9 +1433,9 @@
int queueIndex = currentExpression.getOpCodeMapValue(opPos);
- const XalanDOMString targetNS = queueIndex >= 0 ?
+ const XalanDOMString& targetNS = queueIndex >= 0 ?
currentExpression.getToken(queueIndex)->str() :
- XalanDOMString();
+ s_emptyString;
opPos++;
@@ -1486,8 +1484,8 @@
if(test == true)
{
- const XalanDOMString targetLocalName =
- queueIndex >= 0 ? currentExpression.getToken(queueIndex)->str() : XalanDOMString();
+ const XalanDOMString& targetLocalName =
+ queueIndex >= 0 ? currentExpression.getToken(queueIndex)->str() : s_emptyString;
switch(nodeType)
{
1.11 +10 -1 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.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- SimpleNodeLocator.hpp 2000/08/22 20:20:46 1.10
+++ SimpleNodeLocator.hpp 2000/09/19 14:55:53 1.11
@@ -64,8 +64,15 @@
+#include <XalanDOM/XalanDOMString.hpp>
+
+
+
// Base class header file
#include <XPath/XLocator.hpp>
+
+
+
#include <XPath/MutableNodeRefList.hpp>
@@ -300,8 +307,10 @@
int startOpPos);
private:
+
+ static SimpleNodeLocator s_defaultInstance;
- static SimpleNodeLocator s_defaultInstance;
+ static const XalanDOMString s_emptyString;
};
1.8 +27 -12 xml-xalan/c/src/XPath/XBoolean.cpp
Index: XBoolean.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/XBoolean.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- XBoolean.cpp 2000/08/10 18:37:31 1.7
+++ XBoolean.cpp 2000/09/19 14:55:54 1.8
@@ -67,8 +67,14 @@
+XalanDOMString XBoolean::s_falseString;
+
+XalanDOMString XBoolean::s_trueString;
+
+
+
XBoolean::XBoolean(bool val) :
- XObject(),
+ XObject(eTypeBoolean),
m_value(val)
{
}
@@ -101,14 +107,6 @@
-XBoolean::eObjectType
-XBoolean::getType() const
-{
- return eTypeBoolean;
-}
-
-
-
XalanDOMString
XBoolean::getTypeString() const
{
@@ -133,11 +131,10 @@
-XalanDOMString
+const XalanDOMString&
XBoolean::str() const
{
- return m_value == true ? XALAN_STATIC_UCODE_STRING("true") :
- XALAN_STATIC_UCODE_STRING("false");
+ return m_value == true ? s_trueString : s_falseString;
}
@@ -156,4 +153,22 @@
{
theCallbackObject.Boolean(*this,
boolean());
+}
+
+
+
+void
+XBoolean::initialize()
+{
+ s_falseString = XALAN_STATIC_UCODE_STRING("false");
+ s_trueString = XALAN_STATIC_UCODE_STRING("true");
+}
+
+
+
+void
+XBoolean::terminate()
+{
+ clear(s_falseString);
+ clear(s_trueString);
}
1.9 +17 -4 xml-xalan/c/src/XPath/XBoolean.hpp
Index: XBoolean.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/XBoolean.hpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- XBoolean.hpp 2000/08/10 18:37:32 1.8
+++ XBoolean.hpp 2000/09/19 14:55:55 1.9
@@ -74,6 +74,18 @@
public:
/**
+ * Perform static initialization. See class XPathInit.
+ */
+ static void
+ initialize();
+
+ /**
+ * Perform static shut down. See class XPathInit.
+ */
+ static void
+ terminate();
+
+ /**
* Construct an XBoolean object from a boolean value
*
* @param val boolean value to initialize object
@@ -94,9 +106,6 @@
#endif
clone(void* theAddress = 0) const;
- virtual eObjectType
- getType() const;
-
virtual XalanDOMString
getTypeString() const;
@@ -106,7 +115,7 @@
virtual bool
boolean() const;
- virtual XalanDOMString
+ virtual const XalanDOMString&
str() const;
virtual void
@@ -118,6 +127,10 @@
private:
bool m_value;
+
+ static XalanDOMString s_falseString;
+
+ static XalanDOMString s_trueString;
};
1.15 +2 -10 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.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- XNodeSet.cpp 2000/08/22 20:20:47 1.14
+++ XNodeSet.cpp 2000/09/19 14:56:02 1.15
@@ -76,7 +76,7 @@
XNodeSet::XNodeSet(BorrowReturnMutableNodeRefList& value) :
- XObject(),
+ XObject(eTypeNodeSet),
m_value(value),
m_cachedStringValue(),
m_cachedNumberValue(0.0),
@@ -118,14 +118,6 @@
-XNodeSet::eObjectType
-XNodeSet::getType() const
-{
- return eTypeNodeSet;
-}
-
-
-
XalanDOMString
XNodeSet::getTypeString() const
{
@@ -159,7 +151,7 @@
-XalanDOMString
+const XalanDOMString&
XNodeSet::str() const
{
if (isEmpty(m_cachedStringValue) == true &&
1.15 +1 -4 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.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- XNodeSet.hpp 2000/08/22 20:20:47 1.14
+++ XNodeSet.hpp 2000/09/19 14:56:03 1.15
@@ -126,9 +126,6 @@
#endif
clone(void* theAddress = 0) const;
- virtual eObjectType
- getType() const;
-
virtual XalanDOMString
getTypeString() const;
@@ -138,7 +135,7 @@
virtual bool
boolean() const;
- virtual XalanDOMString
+ virtual const XalanDOMString&
str() const;
virtual const ResultTreeFragBase&
1.8 +3 -11 xml-xalan/c/src/XPath/XNull.cpp
Index: XNull.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/XNull.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- XNull.cpp 2000/08/10 18:37:33 1.7
+++ XNull.cpp 2000/09/19 14:56:04 1.8
@@ -64,7 +64,7 @@
XNull::XNull() :
- XObject()
+ XObject(eTypeNull)
{
}
@@ -95,14 +95,6 @@
-XNull::eObjectType
-XNull::getType() const
-{
- return eTypeNull;
-}
-
-
-
XalanDOMString
XNull::getTypeString() const
{
@@ -127,10 +119,10 @@
-XalanDOMString
+const XalanDOMString&
XNull::str() const
{
- return XalanDOMString();
+ return s_nullString;
}
1.10 +1 -4 xml-xalan/c/src/XPath/XNull.hpp
Index: XNull.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/XNull.hpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- XNull.hpp 2000/08/10 18:37:33 1.9
+++ XNull.hpp 2000/09/19 14:56:04 1.10
@@ -100,9 +100,6 @@
#endif
clone(void* theAddress = 0) const;
- virtual eObjectType
- getType() const;
-
virtual XalanDOMString
getTypeString() const;
@@ -112,7 +109,7 @@
virtual bool
boolean() const;
- virtual XalanDOMString
+ virtual const XalanDOMString&
str() const;
virtual void
1.10 +2 -10 xml-xalan/c/src/XPath/XNumber.cpp
Index: XNumber.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/XNumber.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- XNumber.cpp 2000/08/10 18:37:34 1.9
+++ XNumber.cpp 2000/09/19 14:56:05 1.10
@@ -69,7 +69,7 @@
XNumber::XNumber(double val) :
- XObject(),
+ XObject(eTypeNumber),
m_value(val),
m_cachedStringValue()
{
@@ -104,14 +104,6 @@
-XNumber::eObjectType
-XNumber::getType() const
-{
- return eTypeNumber;
-}
-
-
-
XalanDOMString
XNumber::getTypeString() const
{
@@ -136,7 +128,7 @@
-XalanDOMString
+const XalanDOMString&
XNumber::str() const
{
if (isEmpty(m_cachedStringValue) == true)
1.10 +1 -4 xml-xalan/c/src/XPath/XNumber.hpp
Index: XNumber.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/XNumber.hpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- XNumber.hpp 2000/08/10 18:37:34 1.9
+++ XNumber.hpp 2000/09/19 14:56:06 1.10
@@ -98,9 +98,6 @@
#endif
clone(void* theAddress = 0) const;
- virtual eObjectType
- getType() const;
-
virtual XalanDOMString
getTypeString() const;
@@ -110,7 +107,7 @@
virtual bool
boolean() const;
- virtual XalanDOMString
+ virtual const XalanDOMString&
str() const;
virtual void
1.11 +41 -30 xml-xalan/c/src/XPath/XObject.cpp
Index: XObject.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/XObject.cpp,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- XObject.cpp 2000/08/15 19:43:19 1.10
+++ XObject.cpp 2000/09/19 14:56:06 1.11
@@ -79,13 +79,19 @@
-XObject::XObject()
+const XalanDOMString XObject::s_nullString;
+
+
+
+XObject::XObject(eObjectType theObjectType) :
+ m_objectType(theObjectType)
{
}
-XObject::XObject(const XObject& /* source */)
+XObject::XObject(const XObject& source) :
+ m_objectType(source.m_objectType)
{
}
@@ -119,13 +125,13 @@
-XalanDOMString
+const XalanDOMString&
XObject::str() const
{
throw XObjectInvalidCastException(getTypeString(), XALAN_STATIC_UCODE_STRING("string"));
// This is just a dummy value to satisfy the compiler.
- return XalanDOMString();
+ return s_nullString;
}
@@ -144,6 +150,7 @@
}
+
static const NodeRefList s_dummyList;
@@ -161,8 +168,7 @@
const XalanDOMString
-getStringFromNode(
- const XalanNode& theNode)
+getStringFromNode(const XalanNode& theNode)
{
return theNode.getXSLTData();
}
@@ -186,8 +192,7 @@
double
-getNumberFromNode(
- const XalanNode& theNode)
+getNumberFromNode(const XalanNode& theNode)
{
return DoubleSupport::toDouble(getStringFromNode(theNode));
}
@@ -881,25 +886,28 @@
{
return equalNodeSet(*this, theRHS, theRHS.getType());
}
- else if (theRHS.getType() == eTypeNodeSet)
- {
- return equalNodeSet(theRHS, *this, theLHSType);
- }
else
{
const eObjectType theRHSType = theRHS.getType();
- if (theLHSType == eTypeBoolean || theRHSType == eTypeBoolean)
+ if (theRHSType == eTypeNodeSet)
{
- return boolean() == theRHS.boolean();
+ return equalNodeSet(theRHS, *this, theLHSType);
}
- else if (theLHSType == eTypeNumber || theRHSType == eTypeNumber)
- {
- return DoubleSupport::equal(num(), theRHS.num());
- }
else
{
- return ::equals(str(), theRHS.str());
+ if (theLHSType == eTypeBoolean || theRHSType == eTypeBoolean)
+ {
+ return boolean() == theRHS.boolean();
+ }
+ else if (theLHSType == eTypeNumber || theRHSType == eTypeNumber)
+ {
+ return DoubleSupport::equal(num(), theRHS.num());
+ }
+ else
+ {
+ return ::equals(str(), theRHS.str());
+ }
}
}
}
@@ -931,25 +939,28 @@
{
return notEqualNodeSet(*this, theRHS, theRHS.getType());
}
- else if (theRHS.getType() == eTypeNodeSet)
- {
- return notEqualNodeSet(theRHS, *this, theLHSType);
- }
else
{
const eObjectType theRHSType = theRHS.getType();
- if (theLHSType == eTypeBoolean || theRHSType == eTypeBoolean)
- {
- return boolean() != theRHS.boolean();
- }
- else if (theLHSType == eTypeNumber || theRHSType == eTypeNumber)
+ if (theRHSType == eTypeNodeSet)
{
- return DoubleSupport::notEqual(num(), theRHS.num());
+ return notEqualNodeSet(theRHS, *this, theLHSType);
}
else
{
- return !::equals(str(), theRHS.str());
+ if (theLHSType == eTypeBoolean || theRHSType == eTypeBoolean)
+ {
+ return boolean() != theRHS.boolean();
+ }
+ else if (theLHSType == eTypeNumber || theRHSType == eTypeNumber)
+ {
+ return DoubleSupport::notEqual(num(), theRHS.num());
+ }
+ else
+ {
+ return !::equals(str(), theRHS.str());
+ }
}
}
}
1.11 +26 -19 xml-xalan/c/src/XPath/XObject.hpp
Index: XObject.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/XObject.hpp,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- XObject.hpp 2000/08/10 18:37:34 1.10
+++ XObject.hpp 2000/09/19 14:56:30 1.11
@@ -88,11 +88,25 @@
public:
/**
+ * Enumeration of possible object types
+ */
+ enum eObjectType { eTypeNull = 0,
+ eTypeUnknown = 1,
+ eTypeBoolean = 2,
+ eTypeNumber = 3,
+ eTypeString = 4,
+ eTypeNodeSet = 5,
+ eTypeResultTreeFrag = 6,
+ eTypeUserDefined = 7,
+ eUnknown
+ };
+
+ /**
* Create an XObject.
*
+ * @param theObjectType The enum for the type of the object.
*/
- explicit
- XObject();
+ XObject(eObjectType theObjectType);
XObject(const XObject& source);
@@ -135,7 +149,7 @@
*
* @return string value
*/
- virtual XalanDOMString
+ virtual const XalanDOMString&
str() const;
/**
@@ -230,26 +244,15 @@
greaterThanOrEqual(const XObject& theRHS) const;
/**
- * Enumeration of possible object types
- */
- enum eObjectType { eTypeNull = 0,
- eTypeUnknown = 1,
- eTypeBoolean = 2,
- eTypeNumber = 3,
- eTypeString = 4,
- eTypeNodeSet = 5,
- eTypeResultTreeFrag = 6,
- eTypeUserDefined = 7,
- eUnknown
- };
-
- /**
* Tell what kind of class this is.
*
* @return numeric type value
*/
- virtual eObjectType
- getType() const = 0;
+ eObjectType
+ getType() const
+ {
+ return m_objectType;
+ }
// All XObject instances are controlled by an instance of an XObjectFactory.
friend class XObjectFactory;
@@ -309,11 +312,15 @@
virtual
~XObject();
+ static const XalanDOMString s_nullString;
+
private:
// Not implemented...
XObject&
operator=(const XObject&);
+
+ const eObjectType m_objectType;
};
1.12 +19 -40 xml-xalan/c/src/XPath/XObjectFactory.hpp
Index: XObjectFactory.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/XObjectFactory.hpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- XObjectFactory.hpp 2000/08/15 19:43:19 1.11
+++ XObjectFactory.hpp 2000/09/19 14:56:31 1.12
@@ -235,22 +235,38 @@
{
public:
- DeleteXObjectFunctor(XObjectFactory& theFactoryInstance) :
- m_factoryInstance(theFactoryInstance)
+ DeleteXObjectFunctor(
+ XObjectFactory& theFactoryInstance,
+ bool fInReset = false) :
+ m_factoryInstance(theFactoryInstance),
+ m_fInReset(fInReset)
{
}
result_type
operator()(argument_type theXObject) const
{
- m_factoryInstance.returnObject(theXObject);
+ if (m_fInReset == true)
+ {
+ m_factoryInstance.doReturnObject(
+ theXObject,
+ true);
+ }
+ else
+ {
+ m_factoryInstance.returnObject(theXObject);
+ }
}
private:
XObjectFactory& m_factoryInstance;
+
+ const bool m_fInReset;
};
+ friend struct DeleteXObjectFunctor;
+
protected:
/**
@@ -279,43 +295,6 @@
doReturnObject(
const XObject* theXObject,
bool fInReset = false) = 0;
-
- /**
- *
- * A functor for use with stl algorithms.
- *
- */
-#if defined(XALAN_NO_NAMESPACES)
- struct ProtectedDeleteXObjectFunctor : public unary_function<const XObject*, void>
-#else
- struct ProtectedDeleteXObjectFunctor : public std::unary_function<const XObject*, void>
-#endif
- {
- public:
-
- ProtectedDeleteXObjectFunctor(
- XObjectFactory& theFactoryInstance,
- bool fInReset) :
- m_factoryInstance(theFactoryInstance),
- m_fInReset(fInReset)
- {
- }
-
- result_type
- operator()(argument_type theXObject) const
- {
- m_factoryInstance.doReturnObject(theXObject,
- m_fInReset);
- }
-
- private:
-
- XObjectFactory& m_factoryInstance;
-
- const bool m_fInReset;
- };
-
- friend struct ProtectedDeleteXObjectFunctor;
private:
1.14 +1 -1 xml-xalan/c/src/XPath/XObjectFactoryDefault.cpp
Index: XObjectFactoryDefault.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/XObjectFactoryDefault.cpp,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- XObjectFactoryDefault.cpp 2000/08/14 16:33:56 1.13
+++ XObjectFactoryDefault.cpp 2000/09/19 14:56:33 1.14
@@ -335,7 +335,7 @@
for_each(m_xobjects.begin(),
m_xobjects.end(),
- ProtectedDeleteXObjectFunctor(*this, true));
+ DeleteXObjectFunctor(*this, true));
m_xobjects.clear();
}
1.29 +3 -3 xml-xalan/c/src/XPath/XPath.cpp
Index: XPath.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/XPath.cpp,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -r1.28 -r1.29
--- XPath.cpp 2000/08/31 19:43:03 1.28
+++ XPath.cpp 2000/09/19 14:56:33 1.29
@@ -568,7 +568,7 @@
if(tokenIndex >= 0)
{
- const XalanDOMString targetName =
+ const XalanDOMString& targetName =
m_expression.m_tokenQueue[tokenIndex].str();
if(::equals(targetName, PSEUDONAME_ANY) == true)
@@ -1324,11 +1324,11 @@
opPos += 2;
- const XalanDOMString ns = m_expression.m_tokenQueue[m_expression.m_opMap[opPos]].str();
+ const XalanDOMString& ns = m_expression.m_tokenQueue[m_expression.m_opMap[opPos]].str();
opPos++;
- const XalanDOMString funcName = m_expression.m_tokenQueue[m_expression.m_opMap[opPos]].str();
+ const XalanDOMString& funcName = m_expression.m_tokenQueue[m_expression.m_opMap[opPos]].str();
opPos++;
1.19 +14 -25 xml-xalan/c/src/XPath/XPathEnvSupportDefault.cpp
Index: XPathEnvSupportDefault.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/XPathEnvSupportDefault.cpp,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- XPathEnvSupportDefault.cpp 2000/09/05 02:24:50 1.18
+++ XPathEnvSupportDefault.cpp 2000/09/19 14:56:34 1.19
@@ -84,9 +84,9 @@
#if !defined(XALAN_NO_NAMESPACES)
- using std::cerr;
- using std::endl;
- using std::for_each;
+using std::cerr;
+using std::endl;
+using std::for_each;
#endif
@@ -95,28 +95,6 @@
-struct NamespaceFunctionTableDeleteFunctor
-{
- typedef XPathEnvSupportDefault::FunctionTableType FunctionTableType;
- typedef XPathEnvSupportDefault::NamespaceFunctionTablesType NamespaceFunctionTablesType;
- /**
- * Delete the value object in a map value pair. The value of the pair must
- * be of pointer type.
- *
- * @param thePair key-value pair
- */
- void
- operator()(const NamespaceFunctionTablesType::value_type& thePair) const
- {
- // Clean up the extension namespaces vector
- for_each(thePair.second.begin(),
- thePair.second.end(),
- MapValueDeleteFunctor<FunctionTableType>());
- }
-};
-
-
-
void
XPathEnvSupportDefault::initialize()
{
@@ -552,4 +530,15 @@
<< endl;
return classification == XPathEnvSupport::eError ? true :false;
+}
+
+
+
+void
+XPathEnvSupportDefault::NamespaceFunctionTableDeleteFunctor::operator()(const NamespaceFunctionTablesType::value_type& thePair) const
+{
+ // Clean up the extension namespaces vector
+ for_each(thePair.second.begin(),
+ thePair.second.end(),
+ MapValueDeleteFunctor<FunctionTableType>());
}
1.15 +16 -0 xml-xalan/c/src/XPath/XPathEnvSupportDefault.hpp
Index: XPathEnvSupportDefault.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/XPathEnvSupportDefault.hpp,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- XPathEnvSupportDefault.hpp 2000/08/31 19:43:04 1.14
+++ XPathEnvSupportDefault.hpp 2000/09/19 14:56:35 1.15
@@ -244,6 +244,22 @@
virtual void
reset();
+ // Delete functor for table cleanup...
+ struct NamespaceFunctionTableDeleteFunctor
+ {
+ typedef FunctionTableType FunctionTableType;
+ typedef NamespaceFunctionTablesType NamespaceFunctionTablesType;
+
+ /**
+ * Delete the value object in a map value pair. The value of the pair must
+ * be of pointer type.
+ *
+ * @param thePair key-value pair
+ */
+ void
+ operator()(const NamespaceFunctionTablesType::value_type& thePair) const;
+ };
+
protected:
/**
1.22 +4 -5 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.21
retrieving revision 1.22
diff -u -r1.21 -r1.22
--- XPathExecutionContext.hpp 2000/08/22 20:20:48 1.21
+++ XPathExecutionContext.hpp 2000/09/19 14:56:36 1.22
@@ -557,16 +557,15 @@
* @param ref value that must match the value found by the
* 'match' attribute on xsl:key
* @param resolver resolver for namespace resolution
- * @return if the name was not declared with xsl:key, this will return
- * null, if the identifier is not found, it will return an empty
- * node set, otherwise it will return a nodeset of nodes.
+ * @param nodelist A node list to contain the nodes found
*/
- virtual const NodeRefListBase*
+ virtual void
getNodeSetByKey(
XalanNode* doc,
const XalanDOMString& name,
const XalanDOMString& ref,
- const PrefixResolver& resolver) = 0;
+ const PrefixResolver& resolver,
+ MutableNodeRefList& nodelist) = 0;
/**
* Given a name, locate a variable in the current context, and return
1.20 +3 -3 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.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- XPathExecutionContextDefault.cpp 2000/08/22 20:20:48 1.19
+++ XPathExecutionContextDefault.cpp 2000/09/19 14:56:36 1.20
@@ -466,14 +466,14 @@
-const NodeRefListBase*
+void
XPathExecutionContextDefault::getNodeSetByKey(
XalanNode* /* doc */,
const XalanDOMString& /* name */,
const XalanDOMString& /* ref */,
- const PrefixResolver& /* resolver */)
+ const PrefixResolver& /* resolver */,
+ MutableNodeRefList& /* nodelist */)
{
- return 0;
}
1.21 +5 -4 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.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- XPathExecutionContextDefault.hpp 2000/08/22 20:20:48 1.20
+++ XPathExecutionContextDefault.hpp 2000/09/19 14:56:37 1.21
@@ -225,12 +225,13 @@
virtual bool
getProcessNamespaces() const;
- virtual const NodeRefListBase*
+ virtual void
getNodeSetByKey(
XalanNode* doc,
const XalanDOMString& name,
const XalanDOMString& ref,
- const PrefixResolver& resolver);
+ const PrefixResolver& resolver,
+ MutableNodeRefList& nodelist);
virtual const XObject*
getVariable(
@@ -303,8 +304,6 @@
const XalanNode* sourceNode = 0,
const XalanNode* styleNode = 0) const;
-protected:
-
#if defined(XALAN_NO_NAMESPACES)
typedef vector<MutableNodeRefList*> NodeRefListCacheType;
typedef deque<XObjectArgVectorType> XObjectArgVectorStackType;
@@ -314,6 +313,8 @@
#endif
typedef XObjectArgVectorStackType::iterator ArgVectorStackIteratorType;
+
+protected:
enum { eMutableNodeRefListCacheMax = 50,
eArgVectorStackMax = 25,
1.16 +6 -10 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.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- XPathExpression.cpp 2000/08/24 16:52:02 1.15
+++ XPathExpression.cpp 2000/09/19 14:56:38 1.16
@@ -250,6 +250,7 @@
XPathExpression::XToken::XToken() :
+ XObject(eTypeString),
m_stringValue(),
m_numberValue(DoubleSupport::getNaN())
{
@@ -258,6 +259,7 @@
XPathExpression::XToken::XToken(const XalanDOMString& theString) :
+ XObject(eTypeString),
m_stringValue(theString),
m_numberValue(DoubleSupport::toDouble(theString))
{
@@ -265,7 +267,8 @@
- XPathExpression::XToken::XToken(double theNumber) :
+XPathExpression::XToken::XToken(double theNumber) :
+ XObject(eTypeString),
m_stringValue(DoubleToDOMString(theNumber)),
m_numberValue(theNumber)
{
@@ -274,6 +277,7 @@
XPathExpression::XToken::XToken(const XToken& theSource) :
+ XObject(theSource),
m_stringValue(theSource.m_stringValue),
m_numberValue(theSource.m_numberValue)
{
@@ -315,7 +319,7 @@
-XalanDOMString
+const XalanDOMString&
XPathExpression::XToken::str() const
{
return m_stringValue;
@@ -335,14 +339,6 @@
XPathExpression::XToken::ProcessXObjectTypeCallback(XObjectTypeCallback& theCallbackObject) const
{
theCallbackObject.String(*this, m_stringValue);
-}
-
-
-
-XPathExpression::XToken::eObjectType
-XPathExpression::XToken::getType() const
-{
- return eTypeString;
}
1.9 +1 -4 xml-xalan/c/src/XPath/XPathExpression.hpp
Index: XPathExpression.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/XPathExpression.hpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- XPathExpression.hpp 2000/08/15 19:43:19 1.8
+++ XPathExpression.hpp 2000/09/19 14:56:39 1.9
@@ -761,7 +761,7 @@
virtual double
num() const;
- virtual XalanDOMString
+ virtual const XalanDOMString&
str() const;
virtual void
@@ -769,9 +769,6 @@
virtual void
ProcessXObjectTypeCallback(XObjectTypeCallback& theCallbackObject) const;
-
- virtual eObjectType
- getType() const;
XToken&
operator=(const XToken& theRHS)
1.8 +15 -41 xml-xalan/c/src/XPath/XPathFactory.hpp
Index: XPathFactory.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/XPathFactory.hpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- XPathFactory.hpp 2000/08/10 18:37:39 1.7
+++ XPathFactory.hpp 2000/09/19 14:56:39 1.8
@@ -125,21 +125,32 @@
public:
DeleteXPathFunctor(
- XPathFactory& theFactoryInstance) :
- m_factoryInstance(theFactoryInstance)
+ XPathFactory& theFactoryInstance,
+ bool fInReset = false) :
+ m_factoryInstance(theFactoryInstance),
+ m_fInReset(fInReset)
{
}
result_type
operator()(argument_type theXPath) const
{
- m_factoryInstance.doReturnObject(theXPath,
- false);
+ if (m_fInReset == true)
+ {
+ m_factoryInstance.doReturnObject(theXPath,
+ true);
+ }
+ else
+ {
+ m_factoryInstance.returnObject(theXPath);
+ }
}
private:
XPathFactory& m_factoryInstance;
+
+ const bool m_fInReset;
};
friend struct DeleteXPathFunctor;
@@ -150,43 +161,6 @@
doReturnObject(
const XPath* theXPath,
bool fInReset = false) = 0;
-
- /**
- *
- * A functor for use with stl algorithms.
- *
- */
-#if defined(XALAN_NO_NAMESPACES)
- struct ProtectedDeleteXPathFunctor : public unary_function<const XPath*, void>
-#else
- struct ProtectedDeleteXPathFunctor : public std::unary_function<const XPath*, void>
-#endif
- {
- public:
-
- ProtectedDeleteXPathFunctor(
- XPathFactory& theFactoryInstance,
- bool fInReset) :
- m_factoryInstance(theFactoryInstance),
- m_fInReset(fInReset)
- {
- }
-
- result_type
- operator()(argument_type theXPath) const
- {
- m_factoryInstance.doReturnObject(theXPath,
- m_fInReset);
- }
-
- private:
-
- XPathFactory& m_factoryInstance;
-
- const bool m_fInReset;
- };
-
- friend struct ProtectedDeleteXPathFunctor;
};
1.8 +1 -1 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.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- XPathFactoryDefault.cpp 2000/08/22 20:20:49 1.7
+++ XPathFactoryDefault.cpp 2000/09/19 14:56:40 1.8
@@ -94,7 +94,7 @@
for_each(m_xpaths.begin(),
m_xpaths.end(),
- ProtectedDeleteXPathFunctor(*this, true));
+ DeleteXPathFunctor(*this, true));
m_xpaths.clear();
}
1.2 +7 -2 xml-xalan/c/src/XPath/XPathInit.cpp
Index: XPathInit.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/XPathInit.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- XPathInit.cpp 2000/08/31 19:43:05 1.1
+++ XPathInit.cpp 2000/09/19 14:56:40 1.2
@@ -59,6 +59,7 @@
+#include "XBoolean.hpp"
#include "XPath.hpp"
#include "XPathEnvSupportDefault.hpp"
#include "XPathProcessorImpl.hpp"
@@ -98,6 +99,8 @@
void
XPathInit::initialize()
{
+ XBoolean::initialize();
+
XPath::initialize();
XPathProcessorImpl::initialize();
@@ -110,9 +113,11 @@
void
XPathInit::terminate()
{
- XPath::terminate();
+ XPathEnvSupportDefault::terminate();
XPathProcessorImpl::terminate();
- XPathEnvSupportDefault::terminate();
+ XPath::terminate();
+
+ XBoolean::terminate();
}
1.22 +4 -4 xml-xalan/c/src/XPath/XPathProcessorImpl.cpp
Index: XPathProcessorImpl.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/XPathProcessorImpl.cpp,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -r1.21 -r1.22
--- XPathProcessorImpl.cpp 2000/09/05 02:24:50 1.21
+++ XPathProcessorImpl.cpp 2000/09/19 14:56:41 1.22
@@ -2466,10 +2466,10 @@
void
XPathProcessorImpl::initialize()
{
- XPathProcessorImpl::initializeKeywordsTable(::s_keywords);
- XPathProcessorImpl::initializeFunctionTable(::s_functions);
- XPathProcessorImpl::initializeAxisNamesTable(::s_axisNames);
- XPathProcessorImpl::initializeNodeTypesTable(::s_nodeTypes);
+ initializeKeywordsTable(::s_keywords);
+ initializeFunctionTable(::s_functions);
+ initializeAxisNamesTable(::s_axisNames);
+ initializeNodeTypesTable(::s_nodeTypes);
::s_functionIDString = XALAN_STATIC_UCODE_STRING("id");
::s_functionKeyString = XALAN_STATIC_UCODE_STRING("key");
1.11 +0 -1 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.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- XPathProcessorImpl.hpp 2000/09/05 02:24:51 1.10
+++ XPathProcessorImpl.hpp 2000/09/19 14:56:42 1.11
@@ -65,7 +65,6 @@
#include <set>
-#include <string>
#include <vector>
1.13 +2 -10 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.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- XResultTreeFrag.cpp 2000/08/22 20:20:50 1.12
+++ XResultTreeFrag.cpp 2000/09/19 14:56:43 1.13
@@ -77,7 +77,7 @@
XResultTreeFrag::XResultTreeFrag(ResultTreeFragBase* val) :
- XObject(),
+ XObject(eTypeResultTreeFrag),
NodeRefListBase(),
m_value(val),
m_cachedStringValue(),
@@ -118,14 +118,6 @@
-XResultTreeFrag::eObjectType
-XResultTreeFrag::getType() const
-{
- return eTypeResultTreeFrag;
-}
-
-
-
XalanDOMString
XResultTreeFrag::getTypeString() const
{
@@ -188,7 +180,7 @@
-XalanDOMString
+const XalanDOMString&
XResultTreeFrag::str() const
{
if (isEmpty(m_cachedStringValue) == true)
1.13 +1 -4 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.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- XResultTreeFrag.hpp 2000/08/22 20:20:50 1.12
+++ XResultTreeFrag.hpp 2000/09/19 14:56:44 1.13
@@ -122,9 +122,6 @@
#endif
clone(void* theAddress = 0) const;
- virtual eObjectType
- getType() const;
-
virtual XalanDOMString
getTypeString() const;
@@ -134,7 +131,7 @@
virtual bool
boolean() const;
- virtual XalanDOMString
+ virtual const XalanDOMString&
str() const;
virtual const ResultTreeFragBase&
1.13 +2 -10 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.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- XString.cpp 2000/08/22 20:20:51 1.12
+++ XString.cpp 2000/09/19 14:56:44 1.13
@@ -75,7 +75,7 @@
XString::XString(const XalanDOMString& val) :
- XObject(),
+ XObject(eTypeString),
m_value(val),
m_cachedNumberValue(0.0),
m_resultTreeFrag(0)
@@ -114,14 +114,6 @@
-XString::eObjectType
-XString::getType() const
-{
- return eTypeString;
-}
-
-
-
XalanDOMString
XString::getTypeString() const
{
@@ -155,7 +147,7 @@
-XalanDOMString
+const XalanDOMString&
XString::str() const
{
return m_value;
1.12 +1 -4 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.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- XString.hpp 2000/08/22 20:20:51 1.11
+++ XString.hpp 2000/09/19 14:56:45 1.12
@@ -115,9 +115,6 @@
#endif
clone(void* theAddress = 0) const;
- virtual eObjectType
- getType() const;
-
virtual XalanDOMString
getTypeString() const;
@@ -127,7 +124,7 @@
virtual bool
boolean() const;
- virtual XalanDOMString
+ virtual const XalanDOMString&
str() const;
virtual const ResultTreeFragBase&
1.8 +7 -15 xml-xalan/c/src/XPath/XUnknown.cpp
Index: XUnknown.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/XUnknown.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- XUnknown.cpp 2000/08/10 18:37:40 1.7
+++ XUnknown.cpp 2000/09/19 14:56:46 1.8
@@ -68,8 +68,8 @@
XUnknown::XUnknown(const XalanDOMString& name) :
- XObject(),
- m_name(name)
+ XObject(eTypeUnknown),
+ m_value(XALAN_STATIC_UCODE_STRING("Unknown variable: ") + name)
{
}
@@ -77,7 +77,7 @@
XUnknown::XUnknown(const XUnknown& source) :
XObject(source),
- m_name(source.m_name)
+ m_value(source.m_value)
{
}
@@ -101,14 +101,6 @@
-XUnknown::eObjectType
-XUnknown::getType() const
-{
- return eTypeUnknown;
-}
-
-
-
XalanDOMString
XUnknown::getTypeString() const
{
@@ -133,10 +125,10 @@
-XalanDOMString
+const XalanDOMString&
XUnknown::str() const
{
- return XalanDOMString(XALAN_STATIC_UCODE_STRING("Unknown variable: ")) + m_name;
+ return m_value;
}
@@ -145,7 +137,7 @@
XUnknown::ProcessXObjectTypeCallback(XObjectTypeCallback& theCallbackObject)
{
theCallbackObject.Unknown(*this,
- m_name);
+ m_value);
}
@@ -154,5 +146,5 @@
XUnknown::ProcessXObjectTypeCallback(XObjectTypeCallback& theCallbackObject) const
{
theCallbackObject.Unknown(*this,
- m_name);
+ m_value);
}
1.9 +2 -5 xml-xalan/c/src/XPath/XUnknown.hpp
Index: XUnknown.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/XUnknown.hpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- XUnknown.hpp 2000/08/10 18:37:40 1.8
+++ XUnknown.hpp 2000/09/19 14:56:47 1.9
@@ -98,9 +98,6 @@
#endif
clone(void* theAddress = 0) const;
- virtual eObjectType
- getType() const;
-
virtual XalanDOMString
getTypeString() const;
@@ -110,7 +107,7 @@
virtual bool
boolean() const;
- virtual XalanDOMString
+ virtual const XalanDOMString&
str() const;
virtual void
@@ -121,7 +118,7 @@
private:
- const XalanDOMString m_name;
+ const XalanDOMString m_value;
};