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

@ -130,7 +130,7 @@ namespace spot
// a supplementary state, to act as initial state for LBTT.)
void
fill_todo(todo_set& todo, seen_map& seen, acp_seen_map& acp_seen,
state* state, const tgba& g,
state* state, const tgba* g,
minmax_pair& mmp, unsigned& state_number,
bool init)
{
@ -147,7 +147,7 @@ namespace spot
// Browse the successors of STATE to gather accepting
// conditions of outgoing transitions.
bdd_set acc_seen;
tgba_succ_iterator* si = g.succ_iter(state);
tgba_succ_iterator* si = g->succ_iter(state);
for (si->first(); !si->done(); si->next())
{
acc_seen.insert(si->current_accepting_conditions());
@ -176,9 +176,9 @@ namespace spot
}
std::ostream&
lbtt_reachable(std::ostream& os, const tgba& g)
lbtt_reachable(std::ostream& os, const tgba* g)
{
const bdd_dict* d = g.get_dict();
const bdd_dict* d = g->get_dict();
std::ostringstream body;
seen_map seen;
@ -189,8 +189,8 @@ namespace spot
minmax_pair mmp;
fill_todo(todo, seen, acp_seen,
g.get_init_state(), g, mmp, state_number, true);
accepting_cond_splitter acs(g.all_accepting_conditions());
g->get_init_state(), g, mmp, state_number, true);
accepting_cond_splitter acs(g->all_accepting_conditions());
while(! todo.empty())
{
@ -209,7 +209,7 @@ namespace spot
acs.split(body, sap.second);
body << "-1" << std::endl;
tgba_succ_iterator* si = g.succ_iter(sap.first);
tgba_succ_iterator* si = g->succ_iter(sap.first);
for (si->first(); !si->done(); si->next())
{
// We have put the accepting conditions on the state,