From e856cfc458630f54980643d702deec2abb522273 Mon Sep 17 00:00:00 2001 From: Nikolaj Bjorner <nbjorner@microsoft.com> Date: Sat, 6 Feb 2021 10:35:28 -0800 Subject: [PATCH] coercions --- src/api/api_opt.cpp | 2 +- src/api/python/z3/z3.py | 11 ++++------- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/src/api/api_opt.cpp b/src/api/api_opt.cpp index b12cbe209..220e85241 100644 --- a/src/api/api_opt.cpp +++ b/src/api/api_opt.cpp @@ -456,7 +456,7 @@ extern "C" { ctx.c = c; ctx.m = m; ctx.user_context = user_context; - ctx.on_model = model_eh; + ctx.on_model = (void*)model_eh; to_optimize_ptr(o)->register_on_model(ctx, _model_eh); Z3_CATCH; } diff --git a/src/api/python/z3/z3.py b/src/api/python/z3/z3.py index 6f2dde684..0c298e42f 100644 --- a/src/api/python/z3/z3.py +++ b/src/api/python/z3/z3.py @@ -7408,8 +7408,8 @@ class OptimizeObjective: _on_models = {} def _global_on_model(ctx): - (opt, mdl) = _on_models[ctx] - opt.on_model(mdl) + (fn, mdl) = _on_models[ctx] + fn(mdl) _on_model_eh = on_model_eh_type(_global_on_model) @@ -7606,14 +7606,11 @@ class Optimize(Z3PPObject): """ return Statistics(Z3_optimize_get_statistics(self.ctx.ref(), self.optimize), self.ctx) - def on_model(self, m): - self._on_model(m) - def set_on_model(self, on_model): - self._on_model = on_model id = len(_on_models) + 41 mdl = Model(self.ctx) - _on_models[id] = (self, mdl) + _on_models[id] = (on_model, mdl) + self._on_models_id = id Z3_optimize_register_model_eh(self.ctx.ref(), self.optimize, mdl.model, ctypes.c_void_p(id), _on_model_eh)