From 232295fff4889f1854e4c98c3e234a4305ae8d90 Mon Sep 17 00:00:00 2001 From: Camden Dixie O'Brien Date: Sat, 2 Nov 2024 23:14:59 +0000 Subject: [PATCH] Fix bug in table growing routine --- lib/convert.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/lib/convert.c b/lib/convert.c index 80b3ac7..f209cc4 100644 --- a/lib/convert.c +++ b/lib/convert.c @@ -160,13 +160,17 @@ static void insert(table_t *table, int *nfa_states, int count, int dfa_state) table->entries = calloc(table->capacity, sizeof(table_entry_t)); assert(NULL != table->entries); for (int i = 0; i < old_capacity; ++i) { - if (0 != entries[i].nfa_state_count) - continue; - insert( - table, entries[i].nfa_states, entries[i].nfa_state_count, - entries[i].dfa_state); + if (0 != entries[i].nfa_state_count) { + insert( + table, entries[i].nfa_states, entries[i].nfa_state_count, + entries[i].dfa_state); + } } free(entries); + + // Recurse to insert the entry now that the table has been + // expanded. + insert(table, nfa_states, count, dfa_state); } static bool lookup_or_create(