Skip to content

Commit 9fff116

Browse files
author
Lukasz A.J. Wrona
committed
Remove constructor boilerplate
1 parent 150bab1 commit 9fff116

File tree

4 files changed

+9
-19
lines changed

4 files changed

+9
-19
lines changed

src/solvers/refinement/string_constraint_generator.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,14 +40,14 @@ class string_constraint_generatort final
4040
/// Arguments pack for the string_constraint_generator constructor
4141
struct infot
4242
{
43-
const namespacet *ns=nullptr;
4443
/// Max length of non-deterministic strings
4544
size_t string_max_length=std::numeric_limits<size_t>::max();
4645
/// Prefer printable characters in non-deterministic strings
4746
bool string_printable=false;
4847
};
4948

50-
explicit string_constraint_generatort(const infot& info);
49+
explicit string_constraint_generatort(
50+
const infot& info, const namespacet& ns);
5151

5252
/// Axioms are of three kinds: universally quantified string constraint,
5353
/// not contains string constraints and simple formulas.

src/solvers/refinement/string_constraint_generator_main.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,10 @@ Author: Romain Brenguier, [email protected]
2828
#include <util/ssa_expr.h>
2929

3030
string_constraint_generatort::string_constraint_generatort(
31-
const string_constraint_generatort::infot& info):
31+
const string_constraint_generatort::infot& info, const namespacet& ns):
3232
max_string_length(info.string_max_length),
3333
m_force_printable_characters(info.string_printable),
34-
m_ns(*info.ns) { }
34+
m_ns(ns) { }
3535

3636
const std::vector<exprt> &string_constraint_generatort::get_axioms() const
3737
{

src/solvers/refinement/string_refinement.cpp

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -86,21 +86,11 @@ static bool validate(const string_refinementt::infot &info)
8686
return true;
8787
}
8888

89-
static string_constraint_generatort::infot
90-
generator_info(const string_refinementt::infot &in)
91-
{
92-
string_constraint_generatort::infot out;
93-
out.ns=in.ns;
94-
out.string_max_length=in.string_max_length;
95-
out.string_printable=in.string_printable;
96-
return out;
97-
}
98-
9989
string_refinementt::string_refinementt(const infot &info, bool):
10090
supert(info),
10191
config_(info),
10292
loop_bound_(info.refinement_bound),
103-
generator(generator_info(info)) { }
93+
generator(info, *info.ns) { }
10494

10595
string_refinementt::string_refinementt(const infot &info):
10696
string_refinementt(info, validate(info)) { }

src/solvers/refinement/string_refinement.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,18 +34,18 @@ class string_refinementt final: public bv_refinementt
3434
private:
3535
struct configt {
3636
unsigned refinement_bound=0;
37-
size_t string_max_length=std::numeric_limits<size_t>::max();
3837
/// Make non-deterministic character arrays have at least one character
3938
bool string_non_empty=false;
4039
/// Concretize strings after solver is finished
4140
bool trace=false;
42-
/// Make non-deterministic characters printable
43-
bool string_printable=false;
4441
bool use_counter_example=false;
4542
};
4643
public:
4744
/// string_refinementt constructor arguments
48-
struct infot:public bv_refinementt::infot, public configt { };
45+
struct infot:
46+
public bv_refinementt::infot,
47+
public string_constraint_generatort::infot,
48+
public configt { };
4949

5050
explicit string_refinementt(const infot &);
5151

0 commit comments

Comments
 (0)