Skip to content

Commit e9fa7db

Browse files
committed
revert smt_enode
Signed-off-by: Lev Nachmanson <[email protected]>
1 parent a00eb08 commit e9fa7db

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

src/smt/smt_enode.cpp

+9-1
Original file line numberDiff line numberDiff line change
@@ -340,7 +340,8 @@ namespace smt {
340340

341341
void tmp_enode::set_capacity(unsigned new_capacity) {
342342
SASSERT(new_capacity > m_capacity);
343-
dealloc_svect(m_enode_data);
343+
if (m_enode_data)
344+
dealloc_svect(m_enode_data);
344345
m_capacity = new_capacity;
345346
unsigned sz = sizeof(enode) + m_capacity * sizeof(enode*);
346347
m_enode_data = alloc_svect(char, sz);
@@ -358,12 +359,19 @@ namespace smt {
358359
if (num_args > m_capacity)
359360
set_capacity(num_args * 2);
360361
enode * r = get_enode();
362+
if (m_app.get_app()->get_decl() != f) {
363+
r->m_func_decl_id = UINT_MAX;
364+
}
361365
m_app.set_decl(f);
362366
m_app.set_num_args(num_args);
363367
r->m_commutative = num_args == 2 && f->is_commutative();
364368
memcpy(get_enode()->m_args, args, sizeof(enode*)*num_args);
365369
return r;
366370
}
367371

372+
void tmp_enode::reset() {
373+
get_enode()->m_func_decl_id = UINT_MAX;
374+
}
375+
368376
};
369377

src/smt/smt_enode.h

+1
Original file line numberDiff line numberDiff line change
@@ -465,6 +465,7 @@ namespace smt {
465465
tmp_enode();
466466
~tmp_enode();
467467
enode * set(func_decl * f, unsigned num_args, enode * const * args);
468+
void reset();
468469
};
469470

470471
inline mk_pp pp(enode* n, ast_manager& m) { return mk_pp(n->get_expr(), m); }

0 commit comments

Comments
 (0)