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/26 23:03:18 UTC
cvs commit: xml-xalan/c/src/XSLT StylesheetExecutionContext.hpp StylesheetExecutionContextDefault.cpp StylesheetExecutionContextDefault.hpp
dbertoni 01/01/26 14:03:18
Modified: c/src/XSLT StylesheetExecutionContext.hpp
StylesheetExecutionContextDefault.cpp
StylesheetExecutionContextDefault.hpp
Log:
Fixed const issues with collation.
Revision Changes Path
1.46 +3 -7 xml-xalan/c/src/XSLT/StylesheetExecutionContext.hpp
Index: StylesheetExecutionContext.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XSLT/StylesheetExecutionContext.hpp,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -r1.45 -r1.46
--- StylesheetExecutionContext.hpp 2001/01/16 02:50:02 1.45
+++ StylesheetExecutionContext.hpp 2001/01/26 22:03:10 1.46
@@ -339,13 +339,9 @@
* Add namespace attributes for a node to the list of pending attributes.
*
* @param src source node
- * @param srcIsStylesheetTree true if source node corresponds to a
- * stylesheet
*/
virtual void
- copyNamespaceAttributes(
- const XalanNode& src,
- bool srcIsStylesheetTree) = 0;
+ copyNamespaceAttributes(const XalanNode& src) = 0;
/**
* Retrieve the result prefix corresponding to a namespace.
@@ -1273,7 +1269,7 @@
virtual int
collationCompare(
const XalanDOMString& theLHS,
- const XalanDOMString& theRHS) const = 0;
+ const XalanDOMString& theRHS) = 0;
/**
* Compare two strings using the collation of the
@@ -1286,7 +1282,7 @@
virtual int
collationCompare(
const XalanDOMChar* theLHS,
- const XalanDOMChar* theRHS) const = 0;
+ const XalanDOMChar* theRHS) = 0;
/**
* Determine if a KeyDeclaration is being constructed.
1.52 +30 -35 xml-xalan/c/src/XSLT/StylesheetExecutionContextDefault.cpp
Index: StylesheetExecutionContextDefault.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XSLT/StylesheetExecutionContextDefault.cpp,v
retrieving revision 1.51
retrieving revision 1.52
diff -u -r1.51 -r1.52
--- StylesheetExecutionContextDefault.cpp 2001/01/19 18:54:56 1.51
+++ StylesheetExecutionContextDefault.cpp 2001/01/26 22:03:11 1.52
@@ -112,7 +112,7 @@
StylesheetExecutionContextDefault::XalanNumberFormatFactory* StylesheetExecutionContextDefault::s_xalanNumberFormatFactory =
&StylesheetExecutionContextDefault::getDefaultXalanNumberFormatFactory();
-const StylesheetExecutionContextDefault::DefaultCollationCompareFunctor StylesheetExecutionContextDefault::s_defaultFunctor;
+const StylesheetExecutionContextDefault::DefaultCollationCompareFunctor StylesheetExecutionContextDefault::s_defaultCollationFunctor;
@@ -139,7 +139,7 @@
m_formatterListeners(),
m_printWriters(),
m_outputStreams(),
- m_collationCompareFunctor(&s_defaultFunctor),
+ m_collationCompareFunctor(0),
m_variablesStack(),
m_matchPatternCache(),
m_keyTables(),
@@ -303,11 +303,9 @@
void
-StylesheetExecutionContextDefault::copyNamespaceAttributes(
- const XalanNode& src,
- bool srcIsStylesheetTree)
+StylesheetExecutionContextDefault::copyNamespaceAttributes(const XalanNode& src)
{
- m_xsltProcessor.copyNamespaceAttributes(src, srcIsStylesheetTree);
+ m_xsltProcessor.copyNamespaceAttributes(src);
}
@@ -1174,31 +1172,11 @@
int
StylesheetExecutionContextDefault::collationCompare(
const XalanDOMString& theLHS,
- const XalanDOMString& theRHS) const
+ const XalanDOMString& theRHS)
{
- assert(m_collationCompareFunctor != 0);
-
- if (length(theLHS) == 0)
- {
- if (length(theRHS) == 0)
- {
- return 0;
- }
- else
- {
- return -1;
- }
- }
- else if (length(theRHS) == 0)
+ if (m_collationCompareFunctor == 0)
{
- if (length(theLHS) == 0)
- {
- return 0;
- }
- else
- {
- return 1;
- }
+ return s_defaultCollationFunctor(c_wstr(theLHS), c_wstr(theRHS));
}
else
{
@@ -1211,11 +1189,18 @@
int
StylesheetExecutionContextDefault::collationCompare(
const XalanDOMChar* theLHS,
- const XalanDOMChar* theRHS) const
+ const XalanDOMChar* theRHS)
{
- assert(m_collationCompareFunctor != 0);
+ assert(theLHS != 0 && theRHS != 0);
- return (*m_collationCompareFunctor)(theLHS, theRHS);
+ if (m_collationCompareFunctor == 0)
+ {
+ return s_defaultCollationFunctor(theLHS, theRHS);
+ }
+ else
+ {
+ return (*m_collationCompareFunctor)(theLHS, theRHS);
+ }
}
@@ -1247,6 +1232,16 @@
int
StylesheetExecutionContextDefault::DefaultCollationCompareFunctor::operator()(
const XalanDOMChar* theLHS,
+ const XalanDOMChar* theRHS)
+{
+ return ::collationCompare(theLHS, theRHS);
+}
+
+
+
+int
+StylesheetExecutionContextDefault::DefaultCollationCompareFunctor::operator()(
+ const XalanDOMChar* theLHS,
const XalanDOMChar* theRHS) const
{
return ::collationCompare(theLHS, theRHS);
@@ -1254,12 +1249,12 @@
-const StylesheetExecutionContextDefault::CollationCompareFunctor*
-StylesheetExecutionContextDefault::installCollationCompareFunctor(const CollationCompareFunctor* theFunctor)
+StylesheetExecutionContextDefault::CollationCompareFunctor*
+StylesheetExecutionContextDefault::installCollationCompareFunctor(CollationCompareFunctor* theFunctor)
{
assert(theFunctor != 0);
- const CollationCompareFunctor* const temp = m_collationCompareFunctor;
+ CollationCompareFunctor* const temp = m_collationCompareFunctor;
m_collationCompareFunctor = theFunctor;
1.46 +24 -12 xml-xalan/c/src/XSLT/StylesheetExecutionContextDefault.hpp
Index: StylesheetExecutionContextDefault.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XSLT/StylesheetExecutionContextDefault.hpp,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -r1.45 -r1.46
--- StylesheetExecutionContextDefault.hpp 2001/01/16 02:50:03 1.45
+++ StylesheetExecutionContextDefault.hpp 2001/01/26 22:03:13 1.46
@@ -236,9 +236,7 @@
const XalanDOMString& value);
virtual void
- copyNamespaceAttributes(
- const XalanNode& src,
- bool srcIsStylesheetTree);
+ copyNamespaceAttributes(const XalanNode& src);
virtual const XalanDOMString&
getResultPrefixForNamespace(const XalanDOMString& theNamespace) const;
@@ -547,12 +545,12 @@
virtual int
collationCompare(
const XalanDOMString& theLHS,
- const XalanDOMString& theRHS) const;
+ const XalanDOMString& theRHS);
virtual int
collationCompare(
const XalanDOMChar* theLHS,
- const XalanDOMChar* theRHS) const;
+ const XalanDOMChar* theRHS);
class XALAN_XSLT_EXPORT CollationCompareFunctor
{
@@ -563,6 +561,15 @@
virtual
~CollationCompareFunctor();
+ // Non-const version is suitable for use by
+ // a singe thread.
+ virtual int
+ operator()(
+ const XalanDOMChar* theLHS,
+ const XalanDOMChar* theRHS) = 0;
+
+ // Const version is suitable for use by
+ // multiple threads.
virtual int
operator()(
const XalanDOMChar* theLHS,
@@ -581,20 +588,25 @@
virtual int
operator()(
const XalanDOMChar* theLHS,
+ const XalanDOMChar* theRHS);
+
+ virtual int
+ operator()(
+ const XalanDOMChar* theLHS,
const XalanDOMChar* theRHS) const;
};
- const CollationCompareFunctor*
- installCollationCompareFunctor(const CollationCompareFunctor* theFunctor);
+ CollationCompareFunctor*
+ installCollationCompareFunctor(CollationCompareFunctor* theFunctor);
virtual bool
- getInConstruction(const KeyDeclaration& keyDeclaration) const;
+ getInConstruction(const KeyDeclaration& keyDeclaration) const;
virtual void
- beginConstruction(const KeyDeclaration& keyDeclaration);
+ beginConstruction(const KeyDeclaration& keyDeclaration);
virtual void
- endConstruction(const KeyDeclaration& keyDeclaration);
+ endConstruction(const KeyDeclaration& keyDeclaration);
virtual const XalanDecimalFormatSymbols*
getDecimalFormatSymbols(const XalanDOMString& name);
@@ -868,7 +880,7 @@
OutputStreamSetType m_outputStreams;
- const CollationCompareFunctor* m_collationCompareFunctor;
+ CollationCompareFunctor* m_collationCompareFunctor;
/**
* Holds all information about variables during execution.
@@ -897,7 +909,7 @@
static XalanNumberFormatFactory* s_xalanNumberFormatFactory;
- const static DefaultCollationCompareFunctor s_defaultFunctor;
+ const static DefaultCollationCompareFunctor s_defaultCollationFunctor;
};