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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to