mirror of
https://github.com/Z3Prover/z3
synced 2025-08-22 19:17:53 +00:00
Merge branch 'master' into polysat
This commit is contained in:
commit
e168d8a2eb
109 changed files with 4372 additions and 2743 deletions
|
@ -91,7 +91,7 @@ private:
|
|||
}
|
||||
|
||||
void dec_ref(unsigned sz, value * vs) {
|
||||
if (C::ref_count)
|
||||
if (C::ref_count)
|
||||
for (unsigned i = 0; i < sz; i++)
|
||||
m_vmanager.dec_ref(vs[i]);
|
||||
}
|
||||
|
@ -151,7 +151,7 @@ private:
|
|||
size_t new_capacity = curr_capacity == 0 ? 2 : (3 * curr_capacity + 1) >> 1;
|
||||
value * new_vs = allocate_values(new_capacity);
|
||||
if (curr_capacity > 0) {
|
||||
for (size_t i = 0; i < curr_capacity; i++)
|
||||
for (size_t i = 0; i < curr_capacity; i++)
|
||||
new_vs[i] = vs[i];
|
||||
deallocate_values(vs);
|
||||
}
|
||||
|
@ -177,7 +177,7 @@ private:
|
|||
inc_ref(v);
|
||||
vs[sz] = v;
|
||||
sz++;
|
||||
}
|
||||
}
|
||||
|
||||
void rpush_back(cell * c, value const & v) {
|
||||
SASSERT(c->kind() == ROOT);
|
||||
|
@ -269,7 +269,7 @@ public:
|
|||
}
|
||||
|
||||
value_manager & manager() { return m_vmanager; }
|
||||
|
||||
|
||||
void mk(ref & r) {
|
||||
dec_ref(r.m_ref);
|
||||
cell * new_c = mk(ROOT);
|
||||
|
@ -283,12 +283,12 @@ public:
|
|||
r.m_ref = nullptr;
|
||||
r.m_updt_counter = 0;
|
||||
}
|
||||
|
||||
|
||||
void copy(ref const & s, ref & t) {
|
||||
inc_ref(s.m_ref);
|
||||
dec_ref(t.m_ref);
|
||||
t.m_ref = s.m_ref;
|
||||
t.m_updt_counter = 0;
|
||||
t.m_updt_counter = 0;
|
||||
}
|
||||
|
||||
unsigned size(ref const & r) const {
|
||||
|
@ -310,17 +310,15 @@ public:
|
|||
}
|
||||
|
||||
void check_size(cell* c) const {
|
||||
unsigned r;
|
||||
while (c) {
|
||||
switch (c->kind()) {
|
||||
case SET:
|
||||
break;
|
||||
case PUSH_BACK:
|
||||
r = size(c->next());
|
||||
// ? SASSERT(c->idx() == size(c->next()));
|
||||
break;
|
||||
case POP_BACK:
|
||||
r = size(c->next());
|
||||
SASSERT(c->idx() == r);
|
||||
SASSERT(c->idx() == size(c->next()));
|
||||
break;
|
||||
case ROOT:
|
||||
return;
|
||||
|
@ -333,7 +331,7 @@ public:
|
|||
|
||||
value const & get(ref const & r, unsigned i) const {
|
||||
SASSERT(i < size(r));
|
||||
|
||||
|
||||
unsigned trail_sz = 0;
|
||||
cell * c = r.m_ref;
|
||||
|
||||
|
@ -451,7 +449,7 @@ public:
|
|||
inc_ref(v);
|
||||
new_c->m_elem = v;
|
||||
new_c->m_next = r.m_ref;
|
||||
r.m_ref = new_c;
|
||||
r.m_ref = new_c;
|
||||
SASSERT(new_c->m_ref_count == 1);
|
||||
}
|
||||
|
||||
|
@ -536,7 +534,7 @@ public:
|
|||
r.m_updt_counter = 0;
|
||||
SASSERT(r.root());
|
||||
}
|
||||
|
||||
|
||||
void reroot(ref & r) {
|
||||
if (r.root())
|
||||
return;
|
||||
|
@ -545,7 +543,7 @@ public:
|
|||
unsigned r_sz = size(r);
|
||||
unsigned trail_split_idx = r_sz / C::factor;
|
||||
unsigned i = 0;
|
||||
cell * c = r.m_ref;
|
||||
cell * c = r.m_ref;
|
||||
while (c->kind() != ROOT && i < trail_split_idx) {
|
||||
cs.push_back(c);
|
||||
c = c->next();
|
||||
|
@ -556,7 +554,7 @@ public:
|
|||
unfold(c);
|
||||
}
|
||||
DEBUG_CODE(check_size(c););
|
||||
SASSERT(c->kind() == ROOT);
|
||||
SASSERT(c->kind() == ROOT);
|
||||
for (i = cs.size(); i-- > 0; ) {
|
||||
cell * p = cs[i];
|
||||
SASSERT(c->m_kind == ROOT);
|
||||
|
@ -574,7 +572,7 @@ public:
|
|||
case PUSH_BACK:
|
||||
c->m_kind = POP_BACK;
|
||||
if (sz == capacity(vs))
|
||||
expand(vs);
|
||||
expand(vs);
|
||||
vs[sz] = p->m_elem;
|
||||
++sz;
|
||||
c->m_idx = sz;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue