From ff5feedf283b5321a0a16b2ee02b58af41018222 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Wed, 16 Oct 2002 01:43:11 +0000 Subject: [PATCH] The second element of the iterator is really an offset, not a link git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4196 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Analysis/DSGraphTraits.h | 18 ++++++++++-------- .../Analysis/DataStructure/DSGraphTraits.h | 18 ++++++++++-------- lib/Analysis/DataStructure/Printer.cpp | 2 +- 3 files changed, 21 insertions(+), 17 deletions(-) diff --git a/include/llvm/Analysis/DSGraphTraits.h b/include/llvm/Analysis/DSGraphTraits.h index 575c1e18306..d6ea1edac8c 100644 --- a/include/llvm/Analysis/DSGraphTraits.h +++ b/include/llvm/Analysis/DSGraphTraits.h @@ -17,42 +17,44 @@ class DSNodeIterator : public forward_iterator { friend class DSNode; DSNode * const Node; - unsigned Link; + unsigned Offset; typedef DSNodeIterator _Self; - DSNodeIterator(DSNode *N) : Node(N), Link(0) {} // begin iterator + DSNodeIterator(DSNode *N) : Node(N), Offset(0) {} // begin iterator DSNodeIterator(DSNode *N, bool) // Create end iterator - : Node(N), Link(N->getSize()) { + : Node(N), Offset(N->getSize()) { } public: + DSNodeIterator(const DSNodeHandle &NH) + : Node(NH.getNode()), Offset(NH.getOffset()) {} bool operator==(const _Self& x) const { - return Link == x.Link; + return Offset == x.Offset; } bool operator!=(const _Self& x) const { return !operator==(x); } const _Self &operator=(const _Self &I) { assert(I.Node == Node && "Cannot assign iterators to two different nodes!"); - Link = I.Link; + Offset = I.Offset; return *this; } pointer operator*() const { - DSNodeHandle *NH = Node->getLink(Link); + DSNodeHandle *NH = Node->getLink(Offset); return NH ? NH->getNode() : 0; } pointer operator->() const { return operator*(); } _Self& operator++() { // Preincrement - ++Link; + ++Offset; return *this; } _Self operator++(int) { // Postincrement _Self tmp = *this; ++*this; return tmp; } - unsigned getLink() const { return Link; } + unsigned getOffset() const { return Offset; } DSNode *getNode() const { return Node; } }; diff --git a/include/llvm/Analysis/DataStructure/DSGraphTraits.h b/include/llvm/Analysis/DataStructure/DSGraphTraits.h index 575c1e18306..d6ea1edac8c 100644 --- a/include/llvm/Analysis/DataStructure/DSGraphTraits.h +++ b/include/llvm/Analysis/DataStructure/DSGraphTraits.h @@ -17,42 +17,44 @@ class DSNodeIterator : public forward_iterator { friend class DSNode; DSNode * const Node; - unsigned Link; + unsigned Offset; typedef DSNodeIterator _Self; - DSNodeIterator(DSNode *N) : Node(N), Link(0) {} // begin iterator + DSNodeIterator(DSNode *N) : Node(N), Offset(0) {} // begin iterator DSNodeIterator(DSNode *N, bool) // Create end iterator - : Node(N), Link(N->getSize()) { + : Node(N), Offset(N->getSize()) { } public: + DSNodeIterator(const DSNodeHandle &NH) + : Node(NH.getNode()), Offset(NH.getOffset()) {} bool operator==(const _Self& x) const { - return Link == x.Link; + return Offset == x.Offset; } bool operator!=(const _Self& x) const { return !operator==(x); } const _Self &operator=(const _Self &I) { assert(I.Node == Node && "Cannot assign iterators to two different nodes!"); - Link = I.Link; + Offset = I.Offset; return *this; } pointer operator*() const { - DSNodeHandle *NH = Node->getLink(Link); + DSNodeHandle *NH = Node->getLink(Offset); return NH ? NH->getNode() : 0; } pointer operator->() const { return operator*(); } _Self& operator++() { // Preincrement - ++Link; + ++Offset; return *this; } _Self operator++(int) { // Postincrement _Self tmp = *this; ++*this; return tmp; } - unsigned getLink() const { return Link; } + unsigned getOffset() const { return Offset; } DSNode *getNode() const { return Node; } }; diff --git a/lib/Analysis/DataStructure/Printer.cpp b/lib/Analysis/DataStructure/Printer.cpp index 87ba9712119..d8e755b42bb 100644 --- a/lib/Analysis/DataStructure/Printer.cpp +++ b/lib/Analysis/DataStructure/Printer.cpp @@ -192,7 +192,7 @@ struct DOTGraphTraits : public DefaultDOTGraphTraits { static int getEdgeSourceLabel(DSNode *Node, DSNode::iterator I) { assert(Node == I.getNode() && "Iterator not for this node!"); - return Node->getMergeMapLabel(I.getLink()); + return Node->getMergeMapLabel(I.getOffset()); } };