mirror of
https://github.com/Z3Prover/z3
synced 2026-03-31 08:39:01 +00:00
revert clear() additions that cause heap corruption
The m_cache.reset(), m_assignment.reset(), m_lo.reset(), m_hi.reset()
calls added to clear() in commit 481eb0327 cause heap corruption when
clear() is called from the destructor. The cache reset frees polynomials
while the polynomial manager still holds references to them, corrupting
the heap. This manifests as 'corrupted double-linked list' crashes
during nlsat solver destruction in the nra check path.
The reset() method already has these calls for solver reuse. The
destructor path via clear() should not duplicate them, as implicit
member destruction handles cleanup in the correct order.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
parent
78d70fea37
commit
e760eabd2b
1 changed files with 0 additions and 4 deletions
|
|
@ -347,10 +347,6 @@ namespace nlsat {
|
|||
undo_until_size(0);
|
||||
del_clauses();
|
||||
del_unref_atoms();
|
||||
m_cache.reset();
|
||||
m_assignment.reset();
|
||||
m_lo.reset();
|
||||
m_hi.reset();
|
||||
}
|
||||
|
||||
void checkpoint() {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue