3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-07-29 07:27:57 +00:00

tmp_enode: don't heap allocate an app. store it inline instead.

Saves heap allocations and double indirections
This commit is contained in:
Nuno Lopes 2023-12-20 18:19:20 +00:00
parent 4898a156d8
commit c9c53b7c65
3 changed files with 9 additions and 16 deletions

View file

@ -707,6 +707,8 @@ struct app_flags {
app_flags() : m_depth(1), m_ground(1), m_has_quantifiers(0), m_has_labels(0) {}
};
namespace smt { class tmp_enode; }
class app : public expr {
friend class ast_manager;
@ -720,8 +722,10 @@ class app : public expr {
}
friend class tmp_app;
friend class smt::tmp_enode;
app(func_decl * decl, unsigned num_args, expr * const * args);
app() : expr(AST_APP) {}
public:
func_decl * get_decl() const { return m_decl; }
family_id get_family_id() const { return get_decl()->get_family_id(); }