diff --git a/spot/twaalgos/translate_aa.cc b/spot/twaalgos/translate_aa.cc index 50096a2c3..6be7c4f85 100644 --- a/spot/twaalgos/translate_aa.cc +++ b/spot/twaalgos/translate_aa.cc @@ -124,16 +124,19 @@ namespace spot bool edge_is_acc = ((trans_based && e.acc) || (!trans_based && sere_aut->state_is_accepting(e.dst))); - unsigned new_edge; - // point to accepting sink instead of original dst if asked - if(use_accepting_sink && edge_is_acc) - new_edge = aut_->new_edge(new_st, accepting_sink_, e.cond); - else - new_edge = aut_->new_edge(new_st, register_state(e.dst), e.cond); - - // remember if old edges were accepting - if (acc_edges != nullptr && edge_is_acc) - acc_edges->push_back(new_edge); + if (edge_is_acc) + { + // point to accepting sink instead of original dst if asked + if (use_accepting_sink) + aut_->new_edge(new_st, accepting_sink_, e.cond); + else + { + unsigned new_e = aut_->new_edge(new_st, register_state(e.dst), e.cond); + // remember if old edges were accepting + if (acc_edges != nullptr) + acc_edges->push_back(new_e); + } + } } } @@ -337,9 +340,6 @@ namespace spot for (unsigned i : acc_edges) { auto& e1 = aut_->edge_storage(i); - // self loop used to mark accepting state, skip it! - if (e1.cond == bddfalse) - continue; for (const auto& e2 : aut_->out(rhs_init)) aut_->new_edge(e1.src, e2.dst, e1.cond & e2.cond); }