tgba_digraph: force selection of properties kept on copy

* src/tgba/tgba.hh: Declare a prop_set to specify the types.
* src/tgba/tgbagraph.hh: Use prop_set for all copy constructors.
* iface/ltsmin/ltsmin.cc, src/bin/autfilt.cc, src/bin/randaut.cc,
src/tgbaalgos/are_isomorphic.cc, src/tgbaalgos/closure.cc,
src/tgbaalgos/complete.cc, src/tgbaalgos/degen.cc,
src/tgbaalgos/dotty.cc, src/tgbaalgos/dtgbacomp.cc,
src/tgbaalgos/dupexp.cc, src/tgbaalgos/dupexp.hh,
src/tgbaalgos/sccfilter.cc, src/tgbaalgos/simulation.cc,
src/tgbaalgos/stutterize.cc, src/tgbatest/checkpsl.cc,
src/tgbatest/emptchk.cc, src/tgbatest/ltl2tgba.cc,
wrap/python/spot.i,src/graphtest/tgbagraph.test: Adjust all uses.
This commit is contained in:
Alexandre Duret-Lutz 2014-12-23 19:35:08 +01:00
parent 77cb836e47
commit 87c2b291ed
21 changed files with 309 additions and 162 deletions

View file

@ -602,7 +602,8 @@ namespace spot
public:
spins_kripke(const spins_interface* d, const bdd_dict_ptr& dict,
const prop_set* ps, const ltl::formula* dead, int compress)
const spot::prop_set* ps, const ltl::formula* dead,
int compress)
: kripke(dict),
d_(d),
state_size_(d_->get_state_size()),
@ -723,14 +724,13 @@ namespace spot
compute_state_condition_aux(const int* vars) const
{
bdd res = bddtrue;
for (prop_set::const_iterator i = ps_->begin();
i != ps_->end(); ++i)
for (auto& i: *ps_)
{
int l = vars[i->var_num];
int r = i->val;
int l = vars[i.var_num];
int r = i.val;
bool cond = false;
switch (i->op)
switch (i.op)
{
case OP_EQ:
cond = (l == r);
@ -753,9 +753,9 @@ namespace spot
}
if (cond)
res &= bdd_ithvar(i->bddvar);
res &= bdd_ithvar(i.bddvar);
else
res &= bdd_nithvar(i->bddvar);
res &= bdd_nithvar(i.bddvar);
}
return res;
}
@ -922,7 +922,7 @@ namespace spot
bdd_dict_ptr dict_;
const char** vname_;
bool* format_filter_;
const prop_set* ps_;
const spot::prop_set* ps_;
bdd alive_prop;
bdd dead_prop;
void (*compress_)(const int*, size_t, int*, size_t&);
@ -1130,7 +1130,7 @@ namespace spot
return 0;
}
prop_set* ps = new prop_set;
spot::prop_set* ps = new spot::prop_set;
int errors = convert_aps(to_observe, d, dict, dead, *ps);
if (errors)
{