3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-11-04 13:29:11 +00:00

add clone method

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2025-10-31 07:24:14 -07:00
parent 9a64158e6e
commit ed79c7689d
3 changed files with 9 additions and 3 deletions

View file

@ -163,9 +163,7 @@ namespace smt {
};
params_ref parallel::param_generator::apply_param_values(param_values const &pv) {
params_ref p;
p.copy(m_p);
p.copy(m_p); // hack to break default sharing of parameters
params_ref p = m_p.clone();
for (auto const &[k, v] : pv) {
if (std::holds_alternative<unsigned_value>(v)) {
unsigned_value uv = std::get<unsigned_value>(v);

View file

@ -550,6 +550,13 @@ params_ref::params_ref(params_ref const & p) {
set(p);
}
params_ref params_ref::clone() const {
params_ref p;
p.init();
p.copy_core(m_params);
return p;
}
void params_ref::display(std::ostream & out) const {
if (m_params)
m_params->display(out);

View file

@ -49,6 +49,7 @@ public:
// copy params from src
void copy(params_ref const & src);
void append(params_ref const & src) { copy(src); }
params_ref clone() const;
bool get_bool(symbol const & k, bool _default) const;
bool get_bool(char const * k, bool _default) const;