diff --git a/src/api/api_parsers.cpp b/src/api/api_parsers.cpp index f00d0a44a0c..6355642fc69 100644 --- a/src/api/api_parsers.cpp +++ b/src/api/api_parsers.cpp @@ -231,11 +231,13 @@ extern "C" { Z3_TRY; LOG_Z3_eval_smtlib2_string(c, str); if (!mk_c(c)->cmd()) { - mk_c(c)->cmd() = alloc(cmd_context, false, &(mk_c(c)->m())); - install_dl_cmds(*mk_c(c)->cmd()); - install_opt_cmds(*mk_c(c)->cmd()); - install_smt2_extra_cmds(*mk_c(c)->cmd()); - mk_c(c)->cmd()->set_solver_factory(mk_smt_strategic_solver_factory()); + auto* ctx = alloc(cmd_context, false, &(mk_c(c)->m())); + mk_c(c)->cmd() = ctx; + install_dl_cmds(*ctx); + install_opt_cmds(*ctx); + install_smt2_extra_cmds(*ctx); + ctx->register_plist(); + ctx->set_solver_factory(mk_smt_strategic_solver_factory()); } scoped_ptr& ctx = mk_c(c)->cmd(); std::string s(str);