+2020-09-15 Paul Eggert <eggert@cs.ucla.edu>
+
+ dfa: remove dfa-heap-overrun workaround
+ * lib/dfa.c (reorder_tokens): Go back to a single pass that
+ both sets map[*] and does other things. This reverts
+ 2020-09-14T01:20:01Z!eggert@cs.ucla.edu, which is no longer
+ neeeded now that 2020-09-14T13:21:05Z!noritnk@kcn.ne.jp
+ fixed the underlying problem.
+
2020-09-13 Paul Eggert <eggert@cs.ucla.edu>
dfa: avoid use of uninitialized constraint
? xnmalloc (d->nleaves, sizeof *multibyte_prop)
: NULL);
- for (idx_t i = 0; i < d->tindex; i++)
- for (idx_t j = 0; j < d->follows[i].nelem; j++)
- if (map[d->follows[i].elems[j].index] < 0)
- map[d->follows[i].elems[j].index] = nleaves++;
-
for (idx_t i = 0; i < d->tindex; i++)
{
if (map[i] < 0)
multibyte_prop[map[i]] = d->multibyte_prop[i];
for (idx_t j = 0; j < d->follows[i].nelem; j++)
- d->follows[i].elems[j].index = map[d->follows[i].elems[j].index];
+ {
+ if (map[d->follows[i].elems[j].index] == -1)
+ map[d->follows[i].elems[j].index] = nleaves++;
+
+ d->follows[i].elems[j].index = map[d->follows[i].elems[j].index];
+ }
qsort (d->follows[i].elems, d->follows[i].nelem,
sizeof *d->follows[i].elems, compare);