diff options
-rw-r--r-- | include/llvm/ADT/ilist | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/include/llvm/ADT/ilist b/include/llvm/ADT/ilist index 0d5e75de75..f5b9e1d5f8 100644 --- a/include/llvm/ADT/ilist +++ b/include/llvm/ADT/ilist @@ -58,9 +58,10 @@ struct ilist_traits { static void setPrev(NodeTy *N, NodeTy *Prev) { N->setPrev(Prev); } static void setNext(NodeTy *N, NodeTy *Next) { N->setNext(Next); } - static NodeTy *createNode() { return new NodeTy(); } static NodeTy *createNode(const NodeTy &V) { return new NodeTy(V); } + static NodeTy *createSentinal() { return new NodeTy(); } + static void destroySentinal(NodeTy *N) { delete N; } void addNodeToList(NodeTy *NTy) {} void removeNodeFromList(NodeTy *NTy) {} @@ -301,11 +302,11 @@ public: typedef std::reverse_iterator<const_iterator> const_reverse_iterator; typedef std::reverse_iterator<iterator> reverse_iterator; - iplist() : Head(Traits::createNode()), Tail(Head) { + iplist() : Head(Traits::createSentinal()), Tail(Head) { setNext(Head, 0); setPrev(Head, 0); } - ~iplist() { clear(); delete Tail; } + ~iplist() { clear(); Traits::destroySentinal(Tail); } // Iterator creation methods. iterator begin() { return iterator(Head); } |