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 2002/10/04 10:30:31 UTC

cvs commit: xml-xalan/c/src/XSLT XSLTEngineImpl.cpp XSLTEngineImpl.hpp

dbertoni    2002/10/04 01:30:31

  Modified:    c/src/XSLT XSLTEngineImpl.cpp XSLTEngineImpl.hpp
  Log:
  Use vector instead of set for storing attribute names already visited.
  
  Revision  Changes    Path
  1.160     +9 -3      xml-xalan/c/src/XSLT/XSLTEngineImpl.cpp
  
  Index: XSLTEngineImpl.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/XSLTEngineImpl.cpp,v
  retrieving revision 1.159
  retrieving revision 1.160
  diff -u -r1.159 -r1.160
  --- XSLTEngineImpl.cpp	27 Sep 2002 23:31:38 -0000	1.159
  +++ XSLTEngineImpl.cpp	4 Oct 2002 08:30:30 -0000	1.160
  @@ -195,7 +195,6 @@
   	m_dummyAttributesList(),
   	m_scratchString(),
   	m_attributeNamesVisited(),
  -	m_attributeNamesVisitedEnd(m_attributeNamesVisited.end()),
   	m_hasStripOrPreserveSpace(false),
   	m_hasCDATASectionElements(false)
   {
  @@ -2941,11 +2940,18 @@
   
   			const XalanDOMString&	nodeName = attr->getNodeName();
   
  -			if (m_attributeNamesVisited.find(&nodeName) == m_attributeNamesVisitedEnd)
  +#if !defined(XALAN_NO_NAMESPACES)
  +			using std::find_if;
  +#endif
  +
  +			if (find_if(
  +					m_attributeNamesVisited.begin(),
  +					m_attributeNamesVisited.end(),
  +					FindStringPointerFunctor(nodeName)) == m_attributeNamesVisited.end())
   			{
   				addResultNamespace(*attr, thePendingAttributes, true);
   
  -				m_attributeNamesVisited.insert(&nodeName);
  +				m_attributeNamesVisited.push_back(&nodeName);
   			}
   		}
   
  
  
  
  1.97      +27 -11    xml-xalan/c/src/XSLT/XSLTEngineImpl.hpp
  
  Index: XSLTEngineImpl.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/XSLTEngineImpl.hpp,v
  retrieving revision 1.96
  retrieving revision 1.97
  diff -u -r1.96 -r1.97
  --- XSLTEngineImpl.hpp	27 Sep 2002 23:31:38 -0000	1.96
  +++ XSLTEngineImpl.hpp	4 Oct 2002 08:30:31 -0000	1.97
  @@ -187,17 +187,35 @@
   	typedef vector<const Locator*>			LocatorStack;
   	typedef vector<TraceListener*>			TraceListenerVectorType;
   	typedef vector<bool>					BoolVectorType;
  -	typedef set<const XalanDOMString*,
  -				LessXalanDOMStringPointers>	XalanDOMStringPointerSetType;
  +	typedef vector<const XalanDOMString*>	XalanDOMStringPointerVectorType;
   #else
   	typedef std::map<const void*, ClockType>	DurationsTableMapType;
   	typedef std::vector<const Locator*>			LocatorStack;
   	typedef std::vector<TraceListener*>			TraceListenerVectorType;
   	typedef std::vector<bool>					BoolVectorType;
  -	typedef std::set<const XalanDOMString*,
  -					 LessXalanDOMStringPointers>	XalanDOMStringPointerSetType;
  +	typedef std::vector<const XalanDOMString*>	XalanDOMStringPointerVectorType;
   #endif
   
  +	struct FindStringPointerFunctor
  +	{
  +		FindStringPointerFunctor(const XalanDOMString&	theString) :
  +			m_string(theString)
  +		{
  +		}
  +
  +		bool
  +		operator()(const XalanDOMString*	theString) const
  +		{
  +			assert(theString != 0);
  +
  +			return *theString == m_string;
  +		}
  +
  +	private:
  +
  +		const XalanDOMString&	m_string;
  +	};
  +
   	typedef XalanAutoPtr<XPathProcessor>				XPathProcessorPtrType;
   	typedef Function::XObjectArgVectorType				XObjectArgVectorType;
   	typedef StylesheetExecutionContext::ParamVectorType	ParamVectorType;
  @@ -1708,17 +1726,15 @@
   	/*
   	 * Dummy AttributeListImpl
   	 */
  -	AttributeListImpl				m_dummyAttributesList;
  -
  -	XalanDOMString					m_scratchString;
  +	AttributeListImpl					m_dummyAttributesList;
   
  -	XalanDOMStringPointerSetType	m_attributeNamesVisited;
  +	XalanDOMString						m_scratchString;
   
  -	const XalanDOMStringPointerSetType::iterator	m_attributeNamesVisitedEnd;
  +	XalanDOMStringPointerVectorType		m_attributeNamesVisited;
   
  -	bool							m_hasStripOrPreserveSpace;
  +	bool								m_hasStripOrPreserveSpace;
   
  -	bool							m_hasCDATASectionElements;
  +	bool								m_hasCDATASectionElements;
   
   	static void
   	installFunctions();
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org