From 9fb8701667137d79d0ab00da3fb10d162f950dbc Mon Sep 17 00:00:00 2001 From: Damien Lefortier Date: Tue, 19 Jan 2010 10:43:43 +0100 Subject: [PATCH] * src/tgbaalgos/ltl2taa.cc: Fix the previous patch. --- ChangeLog | 4 ++++ src/tgbaalgos/ltl2taa.cc | 11 +++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6daabf8f2..f2131973f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2010-01-18 Damien Lefortier + + * src/tgbaalgos/ltl2taa.cc: Fix the previous patch. + 2010-01-18 Damien Lefortier * src/tgba/taatgba.cc, src/tgba/taatgba.hh: Fix memory issues diff --git a/src/tgbaalgos/ltl2taa.cc b/src/tgbaalgos/ltl2taa.cc index ea7d74ce2..447c9888d 100644 --- a/src/tgbaalgos/ltl2taa.cc +++ b/src/tgbaalgos/ltl2taa.cc @@ -231,9 +231,14 @@ namespace spot void visit(const multop* node) { + bool ok = true; std::vector vs; for (unsigned n = 0; n < node->size(); ++n) + { vs.push_back(recurse(node->nth(n))); + if (vs[n].succ_.empty()) // Handle 0 + ok = false; + } init_ = node; std::vector::iterator i; @@ -242,6 +247,8 @@ namespace spot { case multop::And: { + if (!ok) + return; std::vector p = all_n_tuples(vs); for (unsigned n = 0; n < p.size(); ++n) { @@ -397,9 +404,9 @@ namespace spot new language_containment_checker(&b, false, false, false, false); ltl2taa_visitor v(res, lcc, refined_rules); f2->accept(v); + taa_tgba* taa = v.result(); // Careful: before the destroy! f2->destroy(); delete lcc; - - return v.result(); + return taa; } }