mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-13 10:32:06 +00:00
when a node is removed from an ilist, set its next/prev pointers to
null. This means that uses of invalidated iterators will explode violently with: ilist:143: failed assertion `NodePtr && "++'d off the end of an ilist!"' instead of happening to work "most of the time". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48859 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
53b87db8d3
commit
2896652be2
@ -356,6 +356,14 @@ public:
|
||||
setPrev(NextNode, PrevNode);
|
||||
IT = NextNode;
|
||||
removeNodeFromList(Node); // Notify traits that we removed a node...
|
||||
|
||||
// Set the next/prev pointers of the current node to null. This isn't
|
||||
// strictly required, but this catches errors where a node is removed from
|
||||
// an ilist (and potentially deleted) with iterators still pointing at it.
|
||||
// When those iterators are incremented or decremented, they will assert on
|
||||
// the null next/prev pointer instead of "usually working".
|
||||
setNext(Node, 0);
|
||||
setPrev(Node, 0);
|
||||
return Node;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user