constify some methods and variables in ImmutableList.
authorTed Kremenek <kremenek@apple.com>
Tue, 21 Oct 2008 05:59:33 +0000 (05:59 +0000)
committerTed Kremenek <kremenek@apple.com>
Tue, 21 Oct 2008 05:59:33 +0000 (05:59 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57894 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/ADT/ImmutableList.h

index dd88023fd1f90ba832d54632798ade0ca517224c..baf86daa360ceb67cc91b4dc842160f6a9af05fe 100644 (file)
@@ -26,9 +26,9 @@ template <typename T> class ImmutableListFactory;
 template <typename T>
 class ImmutableListImpl : public FoldingSetNode {
   T Head;
-  ImmutableListImpl* Tail;
+  const ImmutableListImpl* Tail;
 
-  ImmutableListImpl(const T& head, ImmutableListImpl* tail = 0)
+  ImmutableListImpl(const T& head, const ImmutableListImpl* tail = 0)
     : Head(head), Tail(tail) {}
   
   friend class ImmutableListFactory<T>;
@@ -39,10 +39,10 @@ class ImmutableListImpl : public FoldingSetNode {
   
 public:
   const T& getHead() const { return Head; }
-  ImmutableListImpl* getTail() const { return Tail; }
+  const ImmutableListImpl* getTail() const { return Tail; }
   
   static inline void Profile(FoldingSetNodeID& ID, const T& H,
-                             ImmutableListImpl* L){
+                             const ImmutableListImpl* L){
     ID.AddPointer(L);
     ID.Add(H);
   }
@@ -67,20 +67,20 @@ public:
   typedef ImmutableListFactory<T> Factory;
 
 private:
-  ImmutableListImpl<T>* X;
+  const ImmutableListImpl<T>* X;
 
 public:
   // This constructor should normally only be called by ImmutableListFactory<T>.
   // There may be cases, however, when one needs to extract the internal pointer
   // and reconstruct a list object from that pointer.
-  ImmutableList(ImmutableListImpl<T>* x = 0) : X(x) {}
+  ImmutableList(const ImmutableListImpl<T>* x = 0) : X(x) {}
 
-  ImmutableListImpl<T>* getInternalPointer() const {
+  const ImmutableListImpl<T>* getInternalPointer() const {
     return X;
   }
   
   class iterator {
-    ImmutableListImpl<T>* L;
+    const ImmutableListImpl<T>* L;
   public:
     iterator() : L(0) {}
     iterator(ImmutableList l) : L(l.getInternalPointer()) {}
@@ -157,7 +157,7 @@ public:
     FoldingSetNodeID ID;
     void* InsertPos;
     
-    ListTy* TailImpl = Tail.getInternalPointer();
+    const ListTy* TailImpl = Tail.getInternalPointer();
     ListTy::Profile(ID, Head, TailImpl);
     ListTy* L = Cache.FindNodeOrInsertPos(ID, InsertPos);