@@ -80,12 +80,10 @@ namespace smt {
80
80
m_init_search = true ;
81
81
}
82
82
83
- void theory_sls::finalize () {
83
+ void theory_sls::finalize () const {
84
84
if (!m_smt_plugin)
85
85
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);
89
87
m_model = nullptr ;
90
88
m_smt_plugin = nullptr ;
91
89
m_init_search = false ;
@@ -108,8 +106,7 @@ namespace smt {
108
106
else if (!m_parallel_mode)
109
107
propagate_local_search ();
110
108
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);
113
110
m_smt_plugin = nullptr ;
114
111
m_init_search = false ;
115
112
}
@@ -197,10 +194,8 @@ namespace smt {
197
194
}
198
195
199
196
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);
204
199
st.update (" sls-num-guided-search" , m_stats.m_num_guided_sls );
205
200
st.update (" sls-num-restart-search" , m_stats.m_num_restart_sls );
206
201
}
@@ -222,8 +217,7 @@ namespace smt {
222
217
void theory_sls::bounded_run (unsigned num_steps) {
223
218
m_smt_plugin->bounded_run (num_steps);
224
219
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);
227
221
m_smt_plugin = nullptr ;
228
222
m_init_search = false ;
229
223
}
0 commit comments