Homogenize passing of automata as pointers, not references.
Disallow copy for security. * src/tgba/tgbabddconcrete.hh (tgba_bdd_concrete): Disallow copy. * src/tgba/tgbaexplicit.hh (tgba_explicit): Likewise. * src/tgba/tgbaexplicit.cc (tgba_explicit::operator=, tgba_explicit::tgba_explicit(tgba_explicit)): Remove. * src/tgba/tgbabddconcreteproduct.cc (tgba_bdd_concrete_product_factory::tgba_bdd_concrete_product_factory, product): Take operand automata as pointers. * src/tgba/tgbabddconcreteproduct.hh (product): Likewise. * src/tgba/tgbaproduct.cc, src/tgba/tgbaproduct.hh: (tgba_product): Disallow copy. (tgba_product::tgba_product): Take operand automata as pointers. * src/tgbaalgos/dotty.cc (dotty_state, dotty_rec, dotty_reachable): Take tgba arguments as pointer. * src/tgbaalgos/dotty.hh (dotty_reachable): Likewise. * src/tgbaalgos/lbtt.cc (fill_todo, lbtt_reachable): Likewise. * src/tgbaalgos/lbtt.hh (lbtt_reachable): Likewise. * src/tgbaalgos/ltl2tgba.cc, src/tgbaalgos/ltl2tgba.hh (ltl_to_tgba): Likewise. * src/tgbaalgos/save.cc (save_rec, tgba_save_reachable): Likewise. * src/tgbaalgos/save.hh (save): Likewise. * src/tgbatest/explicit.cc, src/tgbatest/explprod.cc, src/tgbatest/ltl2tgba.cc, src/tgbatest/ltlprod.cc, src/tgbatest/mixprod.cc, src/tgbatest/readsave.cc, src/tgbatest/spotlbtt.cc, src/tgbatest/tgbaread.cc, src/tgbatest/tripprod.cc: Likewise.
This commit is contained in:
parent
cab3be9795
commit
66b1630c31
25 changed files with 123 additions and 104 deletions
|
|
@ -29,7 +29,7 @@ main()
|
|||
a->add_accepting_condition(t1, e.require("q"));
|
||||
a->add_accepting_condition(t2, e.require("r"));
|
||||
|
||||
spot::dotty_reachable(std::cout, *a);
|
||||
spot::dotty_reachable(std::cout, a);
|
||||
|
||||
delete a;
|
||||
delete dict;
|
||||
|
|
|
|||
|
|
@ -35,8 +35,8 @@ main(int argc, char** argv)
|
|||
return 2;
|
||||
|
||||
{
|
||||
spot::tgba_product p(*a1, *a2);
|
||||
spot::tgba_save_reachable(std::cout, p);
|
||||
spot::tgba_product p(a1, a2);
|
||||
spot::tgba_save_reachable(std::cout, &p);
|
||||
}
|
||||
|
||||
assert(spot::ltl::unop::instance_count() == 0);
|
||||
|
|
|
|||
|
|
@ -88,7 +88,7 @@ main(int argc, char** argv)
|
|||
spot::bdd_dict* dict = new spot::bdd_dict();
|
||||
if (f)
|
||||
{
|
||||
spot::tgba_bdd_concrete a = spot::ltl_to_tgba(f, dict);
|
||||
spot::tgba_bdd_concrete* a = spot::ltl_to_tgba(f, dict);
|
||||
spot::ltl::destroy(f);
|
||||
switch (output)
|
||||
{
|
||||
|
|
@ -96,23 +96,23 @@ main(int argc, char** argv)
|
|||
spot::dotty_reachable(std::cout, a);
|
||||
break;
|
||||
case 1:
|
||||
spot::bdd_print_dot(std::cout, a.get_dict(),
|
||||
a.get_core_data().relation);
|
||||
spot::bdd_print_dot(std::cout, a->get_dict(),
|
||||
a->get_core_data().relation);
|
||||
break;
|
||||
case 2:
|
||||
spot::bdd_print_dot(std::cout, a.get_dict(),
|
||||
a.get_core_data().accepting_conditions);
|
||||
spot::bdd_print_dot(std::cout, a->get_dict(),
|
||||
a->get_core_data().accepting_conditions);
|
||||
break;
|
||||
case 3:
|
||||
spot::bdd_print_set(std::cout, a.get_dict(),
|
||||
a.get_core_data().relation);
|
||||
spot::bdd_print_set(std::cout, a->get_dict(),
|
||||
a->get_core_data().relation);
|
||||
break;
|
||||
case 4:
|
||||
spot::bdd_print_set(std::cout, a.get_dict(),
|
||||
a.get_core_data().accepting_conditions);
|
||||
spot::bdd_print_set(std::cout, a->get_dict(),
|
||||
a->get_core_data().accepting_conditions);
|
||||
break;
|
||||
case 5:
|
||||
a.get_dict()->dump(std::cout);
|
||||
a->get_dict()->dump(std::cout);
|
||||
break;
|
||||
case 6:
|
||||
spot::lbtt_reachable(std::cout, a);
|
||||
|
|
@ -120,6 +120,7 @@ main(int argc, char** argv)
|
|||
default:
|
||||
assert(!"unknown output option");
|
||||
}
|
||||
delete a;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
|||
|
|
@ -39,18 +39,20 @@ main(int argc, char** argv)
|
|||
|
||||
spot::bdd_dict* dict = new spot::bdd_dict();
|
||||
{
|
||||
spot::tgba_bdd_concrete a1 = spot::ltl_to_tgba(f1, dict);
|
||||
spot::tgba_bdd_concrete a2 = spot::ltl_to_tgba(f2, dict);
|
||||
spot::tgba_bdd_concrete* a1 = spot::ltl_to_tgba(f1, dict);
|
||||
spot::tgba_bdd_concrete* a2 = spot::ltl_to_tgba(f2, dict);
|
||||
spot::ltl::destroy(f1);
|
||||
spot::ltl::destroy(f2);
|
||||
|
||||
#ifdef BDD_CONCRETE_PRODUCT
|
||||
spot::tgba_bdd_concrete p = spot::product(a1, a2);
|
||||
spot::tgba_bdd_concrete* p = spot::product(a1, a2);
|
||||
#else
|
||||
spot::tgba_product p(a1, a2);
|
||||
spot::tgba_product* p = new spot::tgba_product(a1, a2);
|
||||
#endif
|
||||
|
||||
spot::dotty_reachable(std::cout, p);
|
||||
delete p;
|
||||
delete a1;
|
||||
delete a2;
|
||||
}
|
||||
|
||||
assert(spot::ltl::atomic_prop::instance_count() == 0);
|
||||
|
|
|
|||
|
|
@ -39,11 +39,11 @@ main(int argc, char** argv)
|
|||
return 2;
|
||||
|
||||
{
|
||||
spot::tgba_bdd_concrete a1 = spot::ltl_to_tgba(f1, dict);
|
||||
spot::tgba_bdd_concrete* a1 = spot::ltl_to_tgba(f1, dict);
|
||||
spot::ltl::destroy(f1);
|
||||
spot::tgba_product p(a1, *a2);
|
||||
|
||||
spot::tgba_save_reachable(std::cout, p);
|
||||
spot::tgba_product p(a1, a2);
|
||||
spot::tgba_save_reachable(std::cout, &p);
|
||||
delete a1;
|
||||
}
|
||||
|
||||
assert(spot::ltl::unop::instance_count() == 0);
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ main(int argc, char** argv)
|
|||
|
||||
if (a)
|
||||
{
|
||||
spot::tgba_save_reachable(std::cout, *a);
|
||||
spot::tgba_save_reachable(std::cout, a);
|
||||
delete a;
|
||||
}
|
||||
else
|
||||
|
|
|
|||
|
|
@ -48,9 +48,10 @@ main(int argc, char** argv)
|
|||
|
||||
if (f)
|
||||
{
|
||||
spot::tgba_bdd_concrete a = spot::ltl_to_tgba(f, dict);
|
||||
spot::tgba_bdd_concrete* a = spot::ltl_to_tgba(f, dict);
|
||||
spot::ltl::destroy(f);
|
||||
spot::lbtt_reachable(std::cout, a);
|
||||
delete a;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ main(int argc, char** argv)
|
|||
|
||||
if (a)
|
||||
{
|
||||
spot::dotty_reachable(std::cout, *a);
|
||||
spot::dotty_reachable(std::cout, a);
|
||||
delete a;
|
||||
}
|
||||
else
|
||||
|
|
|
|||
|
|
@ -39,9 +39,9 @@ main(int argc, char** argv)
|
|||
return 2;
|
||||
|
||||
{
|
||||
spot::tgba_product p(*a1, *a2);
|
||||
spot::tgba_product p2(p, *a3);
|
||||
spot::tgba_save_reachable(std::cout, p2);
|
||||
spot::tgba_product p(a1, a2);
|
||||
spot::tgba_product p2(&p, a3);
|
||||
spot::tgba_save_reachable(std::cout, &p2);
|
||||
}
|
||||
|
||||
assert(spot::ltl::unop::instance_count() == 0);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue