diff options
| author | Mattias Andrée <m@maandree.se> | 2025-12-28 14:00:33 +0100 |
|---|---|---|
| committer | Mattias Andrée <m@maandree.se> | 2026-02-22 15:26:49 +0100 |
| commit | e12b1cc372e0c64a7c2fb76bc08a72381808d89d (patch) | |
| tree | fc09dedc79b497baef6ba43d68d8fc2bd2f69fa1 /libautomata_compile_kmp_automaton.c | |
| parent | fix readme (diff) | |
| download | libautomata-e12b1cc372e0c64a7c2fb76bc08a72381808d89d.tar.gz libautomata-e12b1cc372e0c64a7c2fb76bc08a72381808d89d.tar.bz2 libautomata-e12b1cc372e0c64a7c2fb76bc08a72381808d89d.tar.xz | |
Signed-off-by: Mattias Andrée <m@maandree.se>
Diffstat (limited to '')
| -rw-r--r-- | libautomata_compile_kmp_automaton.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/libautomata_compile_kmp_automaton.c b/libautomata_compile_kmp_automaton.c index 3917b00..46b0430 100644 --- a/libautomata_compile_kmp_automaton.c +++ b/libautomata_compile_kmp_automaton.c @@ -24,15 +24,15 @@ libautomata_compile_kmp_automaton(const void *pattern, size_t length, size_t ele (!memcmp(&((const char *)pattern)[i * (WIDTH)], &((const char *)pattern)[j * (WIDTH)], (WIDTH))) #define IMPLEMENT(EQ, EQ_PARAM, CASE)\ - while (i < length) {\ - if (j != SIZE_MAX && !(EQ(EQ_PARAM)))\ - j = ret->next[j];\ - i++;\ - j++;\ - if (EQ(EQ_PARAM))\ + for (; i < length; i++, j++) {\ + if (EQ(EQ_PARAM)) {\ ret->next[i] = ret->next[j];\ - else CASE:\ + } else {\ + CASE:\ ret->next[i] = j;\ + while (j != SIZE_MAX && !(EQ(EQ_PARAM)))\ + j = ret->next[j];\ + }\ }\ return ret |
