[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 ¤tNode->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 ¤tNode->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