mirror of
https://github.com/Z3Prover/z3
synced 2025-04-22 00:26:38 +00:00
Revert "New invariant for dlist (#7294)"
This reverts commit cf4d0e74a5
.
This commit is contained in:
parent
80ac7b3438
commit
c92499cb11
1 changed files with 9 additions and 17 deletions
|
@ -155,23 +155,15 @@ public:
|
|||
elem->init(elem);
|
||||
}
|
||||
|
||||
bool invariant() const {
|
||||
auto* e = this;
|
||||
const T* slow = static_cast<const T*>(this);
|
||||
const T* fast = m_next;
|
||||
bool looped = false;
|
||||
// m_next of each node should point back to m_prev of the following node,
|
||||
// and m_prev of each node should point forward to m_next of the preceding node.
|
||||
while (slow != fast) {
|
||||
if (fast->m_prev->m_next != fast || fast->m_next->m_prev != fast)
|
||||
return false;
|
||||
fast = fast->m_next;
|
||||
looped = looped || (fast == static_cast<const T*>(this));
|
||||
if (!looped && fast == m_next)
|
||||
// We should be able to traverse back to the starting node.
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
bool invariant() const {
|
||||
auto* e = this;
|
||||
do {
|
||||
if (e->m_next->m_prev != e)
|
||||
return false;
|
||||
e = e->m_next;
|
||||
}
|
||||
while (e != this);
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool contains(T const* list, T const* elem) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue