Commit 66b1630c authored by Alexandre Duret-Lutz's avatar Alexandre Duret-Lutz
Browse files

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.
parent cab3be97
......@@ -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);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment