diff --git a/NEWS b/NEWS index eb8cd057a..acaac7dfe 100644 --- a/NEWS +++ b/NEWS @@ -24,6 +24,8 @@ New in spot 1.99.2a (not yet released) escaping routine used by the two styles of LaTeX output was slightly off. For instance ^ was incorrectly escaped, and the double quotes where not always properly rendered. + - A spurious assertion was triggered by streett_to_generalized_buchi(), + but only when compiled in DEBUG mode. New in spot 1.99.2 (2015-07-18) diff --git a/src/twaalgos/totgba.cc b/src/twaalgos/totgba.cc index 1d19b56f5..9657a23b1 100644 --- a/src/twaalgos/totgba.cc +++ b/src/twaalgos/totgba.cc @@ -166,6 +166,9 @@ namespace spot bool sbacc = in->has_state_based_acc(); + // States of the original automaton are marked with s.pend == -1U. + const acc_cond::mark_t orig_copy(-1U); + while (!todo.empty()) { s = todo.front(); @@ -187,7 +190,7 @@ namespace spot bool maybe_acc = maybe_acc_scc && (scc_src == si.scc_of(t.dst)); - if (pend != -1U) + if (pend != orig_copy) { if (!maybe_acc) continue; @@ -239,7 +242,7 @@ namespace spot // that only once per cycle. As an approximation, we // only to that for transition where t.src >= t.dst as // this has to occur at least once per cycle. - if (pend == -1U && (t.src >= t.dst) && maybe_acc && !no_fin) + if (pend == orig_copy && (t.src >= t.dst) && maybe_acc && !no_fin) { acc_cond::mark_t pend = 0U; if (sbacc) @@ -273,7 +276,7 @@ namespace spot // { // std::cerr << s.second << " (" // << s.first.s << ", "; - // if (s.first.pend == -1U) + // if (s.first.pend == orig_copy) // std::cerr << "-)\n"; // else // std::cerr << s.first.pend << ")\n";