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:
Alexandre Duret-Lutz 2003-07-14 22:20:35 +00:00
parent cab3be9795
commit 66b1630c31
25 changed files with 123 additions and 104 deletions

View file

@ -10,7 +10,7 @@ namespace spot
/// Output and record a state.
static bool
dotty_state(std::ostream& os,
const tgba& g, state* st, seen_map& m, int& node)
const tgba* g, state* st, seen_map& m, int& node)
{
seen_map::iterator i = m.find(st);
@ -25,24 +25,24 @@ namespace spot
m[st] = node;
os << " " << node << " [label=\""
<< g.format_state(st) << "\"]" << std::endl;
<< g->format_state(st) << "\"]" << std::endl;
return true;
}
/// Process successors.
static void
dotty_rec(std::ostream& os,
const tgba& g, state* st, seen_map& m, int father)
const tgba* g, state* st, seen_map& m, int father)
{
tgba_succ_iterator* si = g.succ_iter(st);
tgba_succ_iterator* si = g->succ_iter(st);
for (si->first(); !si->done(); si->next())
{
int node;
state* s = si->current_state();
bool recurse = dotty_state(os, g, s, m, node);
os << " " << father << " -> " << node << " [label=\"";
bdd_print_set(os, g.get_dict(), si->current_condition()) << "\\n";
bdd_print_set(os, g.get_dict(), si->current_accepting_conditions())
bdd_print_set(os, g->get_dict(), si->current_condition()) << "\\n";
bdd_print_set(os, g->get_dict(), si->current_accepting_conditions())
<< "\"]" << std::endl;
if (recurse)
{
@ -58,10 +58,10 @@ namespace spot
}
std::ostream&
dotty_reachable(std::ostream& os, const tgba& g)
dotty_reachable(std::ostream& os, const tgba* g)
{
seen_map m;
state* state = g.get_init_state();
state* state = g->get_init_state();
os << "digraph G {" << std::endl;
os << " size=\"7.26,10.69\"" << std::endl;
os << " 0 [label=\"\", style=invis]" << std::endl;