From e369e48b2834da8bbf7e1b2ebe3c5770c9bde72f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Linas=20Vep=C5=A1tas?= Date: Sun, 7 Apr 2024 12:29:43 -0500 Subject: [PATCH] Bugfix tracon table size management. This only affects the large/crazy dictionaries built by the learn project. Per debugging session in #1479 and specifically this comment: https://github.com/opencog/link-grammar/discussions/1479#discussioncomment-8963112 --- ChangeLog | 2 +- link-grammar/string-id.c | 3 ++- link-grammar/string-set.c | 3 ++- link-grammar/tracon-set.c | 3 ++- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index a5ce720c1e..02036d9fef 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,5 @@ Version 5.12.5 (XXX 2024) - * Nothing yet! + * Bugfix tracon table size management. #1486 Version 5.12.4 (28 March 2024) * Minor English dict fixes. #1470 diff --git a/link-grammar/string-id.c b/link-grammar/string-id.c index d18cbd2a8c..e185ab8666 100644 --- a/link-grammar/string-id.c +++ b/link-grammar/string-id.c @@ -154,7 +154,8 @@ static void grow_table(String_id *ss) ss->table[p] = old.table[i]; } } - ss->available_count = MAX_STRING_SET_TABLE_SIZE(ss->size); + ss->available_count = MAX_STRING_SET_TABLE_SIZE(ss->size) - + MAX_STRING_SET_TABLE_SIZE(old.size); /* printf("growing from %zu to %zu\n", old.size, ss->size); */ free(old.table); diff --git a/link-grammar/string-set.c b/link-grammar/string-set.c index bd579db2a7..296f43a92d 100644 --- a/link-grammar/string-set.c +++ b/link-grammar/string-set.c @@ -175,7 +175,8 @@ static void grow_table(String_set *ss) ss->table[p] = old.table[i]; } } - ss->available_count = MAX_STRING_SET_TABLE_SIZE(ss->size); + ss->available_count = MAX_STRING_SET_TABLE_SIZE(ss->size) - + MAX_STRING_SET_TABLE_SIZE(old.size); /* printf("growing from %zu to %zu\n", old.size, ss->size); */ free(old.table); diff --git a/link-grammar/tracon-set.c b/link-grammar/tracon-set.c index 1487bdc247..6527882f58 100644 --- a/link-grammar/tracon-set.c +++ b/link-grammar/tracon-set.c @@ -191,7 +191,8 @@ static void grow_table(Tracon_set *ss) ss->table[p] = old.table[i]; } } - ss->available_count = MAX_STRING_SET_TABLE_SIZE(ss->size); + ss->available_count = MAX_STRING_SET_TABLE_SIZE(ss->size) - + MAX_STRING_SET_TABLE_SIZE(old.size); /* printf("growing from %zu to %zu\n", old.size, ss->size); */ PRT_STAT(fp_count = fp_count_save);