@@ -80,12 +80,10 @@ namespace smt {
8080 m_init_search = true ;
8181 }
8282
83- void theory_sls::finalize () {
83+ void theory_sls::finalize () const {
8484 if (!m_smt_plugin)
8585 return ;
86-
87- m_smt_plugin->collect_statistics (m_st);
88- m_smt_plugin->finalize (m_model);
86+ m_smt_plugin->finalize (m_model, m_st);
8987 m_model = nullptr ;
9088 m_smt_plugin = nullptr ;
9189 m_init_search = false ;
@@ -108,8 +106,7 @@ namespace smt {
108106 else if (!m_parallel_mode)
109107 propagate_local_search ();
110108 else if (m_smt_plugin->completed ()) {
111- m_smt_plugin->collect_statistics (m_st);
112- m_smt_plugin->finalize (m_model);
109+ m_smt_plugin->finalize (m_model, m_st);
113110 m_smt_plugin = nullptr ;
114111 m_init_search = false ;
115112 }
@@ -197,10 +194,8 @@ namespace smt {
197194 }
198195
199196 void theory_sls::collect_statistics (::statistics& st) const {
200- if (m_smt_plugin)
201- m_smt_plugin->collect_statistics (st);
202- else
203- st.copy (m_st);
197+ finalize ();
198+ st.copy (m_st);
204199 st.update (" sls-num-guided-search" , m_stats.m_num_guided_sls );
205200 st.update (" sls-num-restart-search" , m_stats.m_num_restart_sls );
206201 }
@@ -222,8 +217,7 @@ namespace smt {
222217 void theory_sls::bounded_run (unsigned num_steps) {
223218 m_smt_plugin->bounded_run (num_steps);
224219 if (m_smt_plugin->result () == l_true) {
225- m_smt_plugin->collect_statistics (m_st);
226- m_smt_plugin->finalize (m_model);
220+ m_smt_plugin->finalize (m_model, m_st);
227221 m_smt_plugin = nullptr ;
228222 m_init_search = false ;
229223 }
0 commit comments