3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-30 04:15:51 +00:00

Added limit to "visit" to allow detecting multiple visits (#6435)

* Memory leak in .NET user-propagator
The user-propagator object has to be manually disposed (IDisposable), otherwise it stays in memory forever, as it cannot be garbage collected automatically

* Throw an exception if variable passed to decide is already assigned instead of running in an assertion violation

* Added limit to "visit" to allow detecting multiple visits

* Putting visit in a separate class
(Reason: We will probably need two of them in the sat::solver)

* Bugfix
This commit is contained in:
Clemens Eisenhofer 2022-11-03 11:34:52 +01:00 committed by GitHub
parent e0bbe8dfc0
commit 6790f18132
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 68 additions and 52 deletions

View file

@ -2709,10 +2709,10 @@ namespace pb {
}
void solver::init_visited() { s().init_visited(); }
void solver::mark_visited(literal l) { s().mark_visited(l); }
void solver::mark_visited(bool_var v) { s().mark_visited(v); }
bool solver::is_visited(bool_var v) const { return s().is_visited(v); }
bool solver::is_visited(literal l) const { return s().is_visited(l); }
void solver::mark_visited(literal l) { s().m_visited.mark_visited(l); }
void solver::mark_visited(bool_var v) { s().m_visited.mark_visited(v); }
bool solver::is_visited(bool_var v) const { return s().m_visited.is_visited(v); }
bool solver::is_visited(literal l) const { return s().m_visited.is_visited(l); }
void solver::cleanup_clauses() {
if (m_clause_removed) {