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;
   };