mirror of
https://github.com/Z3Prover/z3
synced 2025-04-24 01:25:31 +00:00
remove using insert_if_not_there2
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
9ea1cf3c5c
commit
a884201d62
47 changed files with 172 additions and 208 deletions
|
@ -145,15 +145,13 @@ sort * model::get_uninterpreted_sort(unsigned idx) const {
|
|||
}
|
||||
|
||||
void model::register_usort(sort * s, unsigned usize, expr * const * universe) {
|
||||
sort2universe::obj_map_entry * entry = m_usort2universe.insert_if_not_there2(s, nullptr);
|
||||
ptr_vector<expr>* & u = m_usort2universe.insert_if_not_there(s, nullptr);
|
||||
m.inc_array_ref(usize, universe);
|
||||
ptr_vector<expr> * u = entry->get_data().m_value;
|
||||
if (!u) {
|
||||
m_usorts.push_back(s);
|
||||
m.inc_ref(s);
|
||||
u = alloc(ptr_vector<expr>);
|
||||
u->append(usize, universe);
|
||||
entry->get_data().m_value = u;
|
||||
}
|
||||
else {
|
||||
m.dec_array_ref(u->size(), u->c_ptr());
|
||||
|
|
|
@ -56,20 +56,20 @@ void model_core::register_decl(func_decl * d, expr * v) {
|
|||
TRACE("model", tout << "register " << d->get_name() << "\n";
|
||||
if (v) tout << mk_pp(v, m) << "\n";
|
||||
);
|
||||
decl2expr::obj_map_entry * entry = m_interp.insert_if_not_there2(d, nullptr);
|
||||
if (entry->get_data().m_value == nullptr) {
|
||||
auto& value = m_interp.insert_if_not_there(d, nullptr);
|
||||
if (value == nullptr) {
|
||||
// new entry
|
||||
m_decls.push_back(d);
|
||||
m_const_decls.push_back(d);
|
||||
m.inc_ref(d);
|
||||
m.inc_ref(v);
|
||||
entry->get_data().m_value = v;
|
||||
value = v;
|
||||
}
|
||||
else {
|
||||
// replacing entry
|
||||
m.inc_ref(v);
|
||||
m.dec_ref(entry->get_data().m_value);
|
||||
entry->get_data().m_value = v;
|
||||
m.dec_ref(value);
|
||||
value = v;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -77,19 +77,19 @@ void model_core::register_decl(func_decl * d, func_interp * fi) {
|
|||
TRACE("model", tout << "register " << d->get_name() << "\n";);
|
||||
SASSERT(d->get_arity() > 0);
|
||||
SASSERT(&fi->m() == &m);
|
||||
decl2finterp::obj_map_entry * entry = m_finterp.insert_if_not_there2(d, nullptr);
|
||||
if (entry->get_data().m_value == nullptr) {
|
||||
auto& value = m_finterp.insert_if_not_there(d, nullptr);
|
||||
if (value == nullptr) {
|
||||
// new entry
|
||||
m_decls.push_back(d);
|
||||
m_func_decls.push_back(d);
|
||||
m.inc_ref(d);
|
||||
entry->get_data().m_value = fi;
|
||||
value = fi;
|
||||
}
|
||||
else {
|
||||
// replacing entry
|
||||
if (fi != entry->get_data().m_value)
|
||||
dealloc(entry->get_data().m_value);
|
||||
entry->get_data().m_value = fi;
|
||||
if (fi != value)
|
||||
dealloc(value);
|
||||
value = fi;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue