[prev in list] [next in list] [prev in thread] [next in thread] 

List:       xalan-cvs
Subject:    cvs commit: xml-xalan/c/src/xalanc/Include SolarisDefinitions.hpp XalanList.hpp XalanVector.hpp
From:       mhoyt () apache ! org
Date:       2004-09-28 18:48:58
Message-ID: 20040928184858.57586.qmail () minotaur ! apache ! org
[Download RAW message or body]

mhoyt       2004/09/28 11:48:58

  Modified:    c/src/xalanc/Harness XalanXMLFileReporter.hpp
               c/src/xalanc/Include SolarisDefinitions.hpp XalanList.hpp
                        XalanVector.hpp
  Log:
  Enable Solaris build:  Removed nested template,  correct reverse_iterator \
parameters, workaround for compiler assert  
  Revision  Changes    Path
  1.2       +9 -6      xml-xalan/c/src/xalanc/Harness/XalanXMLFileReporter.hpp
  
  Index: XalanXMLFileReporter.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/xalanc/Harness/XalanXMLFileReporter.hpp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- XalanXMLFileReporter.hpp	3 Aug 2004 15:59:09 -0000	1.1
  +++ XalanXMLFileReporter.hpp	28 Sep 2004 18:48:58 -0000	1.2
  @@ -23,7 +23,14 @@
   
   
   #include <cstdio>
  -#include <map>
  +
  +
  +
  +#include "xalanc/Include/XalanMap.hpp"
  +
  +
  +
  +#include "xalanc/PlatformSupport/DOMStringHelper.hpp"
   
   
   
  @@ -40,11 +47,7 @@
   {
   public:
   
  -#if defined(XALAN_NO_STD_NAMESPACE)
  -    typedef map<XalanDOMString, XalanDOMString, less<XalanDOMString> >  Hashtable;
  -#else
  -    typedef std::map<XalanDOMString, XalanDOMString>    Hashtable;
  -#endif
  +    typedef XalanMap<XalanDOMString, XalanDOMString>  Hashtable;
   
   #if defined(XALAN_STRICT_ANSI_HEADERS)
       typedef std::FILE   FileHandleType;
  
  
  
  1.7       +1 -0      xml-xalan/c/src/xalanc/Include/SolarisDefinitions.hpp
  
  Index: SolarisDefinitions.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/xalanc/Include/SolarisDefinitions.hpp,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- SolarisDefinitions.hpp	30 Jul 2004 01:24:33 -0000	1.6
  +++ SolarisDefinitions.hpp	28 Sep 2004 18:48:58 -0000	1.7
  @@ -63,6 +63,7 @@
   // Standard allocators don't seem to work correctly with this compiler.
   // I don't know if this is their bug, or ours...
   #define XALAN_NO_STD_ALLOCATORS
  +#define XALAN_RW_NO_CLASS_PARTIAL_SPEC
   
   #define XALAN_XALANDOMCHAR_USHORT_MISMATCH
   #define XALAN_POSIX2_AVAILABLE
  
  
  
  1.4       +120 -94   xml-xalan/c/src/xalanc/Include/XalanList.hpp
  
  Index: XalanList.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/xalanc/Include/XalanList.hpp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- XalanList.hpp	17 Sep 2004 22:23:10 -0000	1.3
  +++ XalanList.hpp	28 Sep 2004 18:48:58 -0000	1.4
  @@ -44,6 +44,112 @@
   XALAN_CPP_NAMESPACE_BEGIN
   
   
  +
  +template <class Value>
  +struct XalanListIteratorTraits
  +{
  +	typedef Value	value_type;
  +	typedef Value&	reference;
  +	typedef Value*	pointer;
  +};
  +
  +template <class Value>
  +struct XalanListConstIteratorTraits
  +{
  +	typedef Value	value_type;
  +	typedef const	Value&	reference;
  +	typedef const	Value*	pointer;
  +};
  +
  +template<class XalanListTraits, class Node>
  +struct XalanListIteratorBase 
  +{
  +	typedef typename XalanListTraits::value_type	value_type;
  +	typedef typename XalanListTraits::reference		reference;
  +	typedef typename XalanListTraits::pointer		pointer;
  +	
  +	typedef ptrdiff_t		difference_type;
  +
  +	typedef XALAN_STD_QUALIFIER bidirectional_iterator_tag iterator_category;
  +
  +	typedef XalanListIteratorBase<XalanListIteratorTraits<value_type>, Node> \
iterator;  +
  +	XalanListIteratorBase(Node& node) : 
  +		currentNode(&node)
  +	{
  +	}
  +
  +	XalanListIteratorBase(const iterator& theRhs) :
  +		currentNode(theRhs.currentNode)
  +	{
  +	}
  +
  +	XalanListIteratorBase operator++()
  +	{
  +		currentNode = currentNode->next;
  +		return *this;
  +	}
  +
  +	XalanListIteratorBase operator++(int)
  +	{
  +		Node& origNode = *currentNode;
  +		currentNode = currentNode->next;
  +		return XalanListIteratorBase(origNode);
  +	}
  +
  +	XalanListIteratorBase operator--()
  +	{
  +		currentNode = currentNode->prev;
  +		return *this;
  +	}
  +
  +	XalanListIteratorBase operator-(difference_type decrement) const 
  +	{
  +		Node* node = currentNode;
  +		while (decrement > 0)
  +		{
  +			node = node->prev;
  +			--decrement;
  +		};
  +		return XalanListIteratorBase(*node);
  +	}
  +
  +	reference operator*() const
  +	{
  +		return currentNode->value;
  +	}
  +
  +	pointer operator->() const
  +	{
  +		return &currentNode->value;
  +	}
  +
  +	const XalanListIteratorBase & operator=(const XalanListIteratorBase& theRhs)
  +	{
  +		currentNode = theRhs.currentNode;
  +		return *this;
  +	}
  +
  +	bool operator!=(const XalanListIteratorBase& theRhs) const 
  +	{
  +		return !operator==(theRhs);
  +	}
  +
  +	bool operator==(const XalanListIteratorBase& theRhs) const 
  +	{
  +		return currentNode == theRhs.currentNode;
  +	}
  +
  +	Node& node()
  +	{
  +		return *currentNode;
  +	}
  +
  +	Node*	currentNode;
  +};
  +
  +
  +
   /**
    * Xalan implementation of a doubly linked list
    */
  @@ -80,102 +186,22 @@
   		Node*		next;
   	};
   
  -
  -	template<class Value>
  -	struct iterator_base 
  -	{
  -		typedef Value		value_type;
  -		typedef Value&		reference;
  -		typedef Value*		pointer;
  -
  -		typedef size_type	difference_type;
  -		typedef XALAN_STD_QUALIFIER bidirectional_iterator_tag iterator_category;
  -		
  -		typedef iterator_base<Type> iterator;
  -	
  -		typedef iterator_base<value_type> ThisType;
  -
  -		iterator_base(Node& node) : 
  -			currentNode(&node)
  -		{
  -		}
  -
  -		iterator_base(const iterator& theRhs) :
  -			currentNode(theRhs.currentNode)
  -		{
  -		}
  -
  -		iterator_base operator++()
  -		{
  -			currentNode = currentNode->next;
  -			return *this;
  -		}
  -
  -		iterator_base operator++(int)
  -		{
  -			Node& origNode = *currentNode;
  -			currentNode = currentNode->next;
  -			return iterator_base(origNode);
  -		}
  -
  -		iterator_base operator--()
  -		{
  -			currentNode = currentNode->prev;
  -			return *this;
  -		}
  -
  -		iterator_base operator-(difference_type decrement) const 
  -		{
  -			Node* node = currentNode;
  -			while (decrement > 0)
  -			{
  -				node = node->prev;
  -				--decrement;
  -			};
  -			return iterator_base(*node);
  -		}
  -
  -		reference operator*() const
  -		{
  -			return currentNode->value;
  -		}
  -
  -		pointer operator->() const
  -		{
  -			return &currentNode->value;
  -		}
  -
  -		const ThisType & operator=(const ThisType& theRhs)
  -		{
  -			currentNode = theRhs.currentNode;
  -			return *this;
  -		}
  -
  -		bool operator!=(const ThisType& theRhs) const 
  -		{
  -			return !operator==(theRhs);
  -		}
  -
  -		bool operator==(const ThisType& theRhs) const 
  -		{
  -			return currentNode == theRhs.currentNode;
  -		}
  -
  -		Node& node()
  -		{
  -			return *currentNode;
  -		}
  -
  -		Node*	currentNode;
  -	};
  -
  -	typedef iterator_base<value_type>		iterator;
  +	typedef XalanListIteratorBase<XalanListIteratorTraits<value_type>, \
Node>		iterator;  
  -	typedef iterator_base<const value_type>	const_iterator;
  -		
  +	typedef XalanListIteratorBase<XalanListConstIteratorTraits<value_type>, \
Node>	const_iterator;  +			
   #if defined(XALAN_HAS_STD_ITERATORS)
  -	typedef XALAN_STD_QUALIFIER reverse_iterator<iterator>			reverse_iterator_;
  -	typedef XALAN_STD_QUALIFIER \
reverse_iterator<const_iterator>	const_reverse_iterator_;  +	typedef \
XALAN_STD_QUALIFIER reverse_iterator<iterator, XALAN_STD_QUALIFIER \
bidirectional_iterator_tag, value_type>			reverse_iterator_;  +	typedef \
XALAN_STD_QUALIFIER reverse_iterator<const_iterator, XALAN_STD_QUALIFIER \
bidirectional_iterator_tag, value_type>	const_reverse_iterator_;  +#elif \
defined(XALAN_RW_NO_CLASS_PARTIAL_SPEC)  +	typedef XALAN_STD_QUALIFIER \
reverse_iterator<  +		iterator,
  +		XALAN_STD_QUALIFIER bidirectional_iterator_tag,
  +		value_type> reverse_iterator_;
  +	typedef XALAN_STD_QUALIFIER reverse_iterator<
  +		const_iterator,
  +		XALAN_STD_QUALIFIER bidirectional_iterator_tag,
  +		const value_type> const_reverse_iterator_;
   #else
   	typedef XALAN_STD_QUALIFIER reverse_iterator<iterator, \
value_type>							reverse_iterator_;  typedef XALAN_STD_QUALIFIER \
reverse_iterator<const_iterator, value_type, \
const_reference>	const_reverse_iterator_;  
  
  
  1.6       +15 -1     xml-xalan/c/src/xalanc/Include/XalanVector.hpp
  
  Index: XalanVector.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/xalanc/Include/XalanVector.hpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- XalanVector.hpp	7 Aug 2004 19:57:43 -0000	1.5
  +++ XalanVector.hpp	28 Sep 2004 18:48:58 -0000	1.6
  @@ -89,6 +89,15 @@
   #if defined(XALAN_HAS_STD_ITERATORS)
       typedef XALAN_STD_QUALIFIER reverse_iterator<iterator>          \
                reverse_iterator_;
       typedef XALAN_STD_QUALIFIER reverse_iterator<const_iterator>    \
const_reverse_iterator_;  +#elif defined(XALAN_RW_NO_CLASS_PARTIAL_SPEC)
  +    typedef XALAN_STD_QUALIFIER reverse_iterator<
  +        iterator,
  +        XALAN_STD_QUALIFIER random_access_iterator_tag,
  +        value_type> reverse_iterator_;
  +    typedef XALAN_STD_QUALIFIER reverse_iterator<
  +        const_iterator,
  +        XALAN_STD_QUALIFIER random_access_iterator_tag,
  +        const value_type> const_reverse_iterator_;
   #else
       typedef XALAN_STD_QUALIFIER reverse_iterator<iterator, value_type>             \
                reverse_iterator_;
       typedef XALAN_STD_QUALIFIER reverse_iterator<const_iterator, value_type, \
const_reference>   const_reverse_iterator_;  @@ -537,7 +546,12 @@
       void
       resize(
               size_type           theSize,
  -            const value_type&   theValue = value_type())
  +#if !defined(SOLARIS)  // Causes Solaris 5.3 compiler assert
  +            const value_type&   theValue = value_type()
  +#else
  +	    value_type 		theValue = value_type()
  +#endif
  +)
       {
           invariants();
   
  
  
  

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


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic