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

fixed memory leaks

This commit is contained in:
Christoph M. Wintersteiger 2016-08-20 17:57:00 -04:00
parent 47e95f8676
commit b03dc0af3b

View file

@ -1573,7 +1573,8 @@ private:
return false; return false;
} }
} }
expr * p = m_manager.mk_pattern(ts.size(), (app*const*)(ts.c_ptr())); expr_ref p(m_manager);
p = m_manager.mk_pattern(ts.size(), (app*const*)(ts.c_ptr()));
if (!p || (!ignore_user_patterns() && !m_pattern_validator(num_bindings, p, children[0]->line(), children[0]->pos()))) { if (!p || (!ignore_user_patterns() && !m_pattern_validator(num_bindings, p, children[0]->line(), children[0]->pos()))) {
set_error("invalid pattern", children[0]); set_error("invalid pattern", children[0]);
return false; return false;
@ -1581,8 +1582,11 @@ private:
patterns.push_back(p); patterns.push_back(p);
} }
else if (children[0]->string() == symbol("ex_act") && ts.size() == 1) { else if (children[0]->string() == symbol("ex_act") && ts.size() == 1) {
app * sk_hack = m_manager.mk_app(m_sk_hack, 1, ts.c_ptr()); app_ref sk_hack(m_manager);
expr * p = m_manager.mk_pattern(1, &sk_hack); sk_hack = m_manager.mk_app(m_sk_hack, 1, ts.c_ptr());
app * sk_hackp = sk_hack.get();
expr_ref p(m_manager);
p = m_manager.mk_pattern(1, &sk_hackp);
if (!p || (!ignore_user_patterns() && !m_pattern_validator(num_bindings, p, children[0]->line(), children[0]->pos()))) { if (!p || (!ignore_user_patterns() && !m_pattern_validator(num_bindings, p, children[0]->line(), children[0]->pos()))) {
set_error("invalid pattern", children[0]); set_error("invalid pattern", children[0]);
return false; return false;