fix previous two patches
make sure we don't split a label with a label that subsume it * spot/twaalgos/alternation.cc, spot/twaalgos/dualize.cc: Here.
This commit is contained in:
parent
f26f3243dd
commit
ef10be047c
2 changed files with 3 additions and 6 deletions
|
|
@ -408,14 +408,12 @@ namespace spot
|
|||
separated_labels.push_back(bddtrue);
|
||||
for (auto& lab: all_labels)
|
||||
{
|
||||
// make sure don't realloc during the loop
|
||||
separated_labels.reserve(separated_labels.size() * 2);
|
||||
// Do not use a range-based or iterator-based for loop
|
||||
// here, as push_back invalidates the end iterator.
|
||||
for (unsigned cur = 0, sz = separated_labels.size();
|
||||
cur < sz; ++cur)
|
||||
if (bdd common = separated_labels[cur] & lab;
|
||||
common != bddfalse)
|
||||
common != bddfalse && common != separated_labels[cur])
|
||||
{
|
||||
separated_labels[cur] -= lab;
|
||||
separated_labels.push_back(common);
|
||||
|
|
|
|||
|
|
@ -200,13 +200,12 @@ namespace spot
|
|||
labels.push_back(bddtrue);
|
||||
for (auto& e: aut_->out(i))
|
||||
{
|
||||
// make sure we don't realloc during the loop
|
||||
labels.reserve(labels.size() * 2);
|
||||
// Do not use a range-based or iterator-based for
|
||||
// loop here, as push_back invalidates the end
|
||||
// iterator.
|
||||
for (unsigned cur = 0, sz = labels.size(); cur < sz; ++cur)
|
||||
if (bdd common = labels[cur] & e.cond; common != bddfalse)
|
||||
if (bdd common = labels[cur] & e.cond;
|
||||
common != bddfalse && common != labels[cur])
|
||||
{
|
||||
labels[cur] -= e.cond;
|
||||
labels.push_back(common);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue