From a5e7f4253ac98ad18354973fda7049e9daaea8eb Mon Sep 17 00:00:00 2001 From: Berthold Stoeger Date: Wed, 26 Jun 2019 17:21:03 +0200 Subject: Core: dynamically resize weight table Replace the fixed-size weightsystem table by a dynamically relocated table. Reuse the table-macros used in other parts of the code. The table stores weightsystem entries, not pointers to weightsystems. Thus, ownership of the description string is taken when adding a weightsystem. An extra function adds a cloned weightsystem at the end of the table. Signed-off-by: Berthold Stoeger --- core/table.h | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'core/table.h') diff --git a/core/table.h b/core/table.h index da0bc96a5..cf0be3bae 100644 --- a/core/table.h +++ b/core/table.h @@ -50,13 +50,13 @@ } \ } -#define MAKE_REMOVE_FROM(table_type, array_name) \ - void remove_from_##table_type(struct table_type *table, int idx) \ - { \ - int i; \ - for (i = idx; i < table->nr - 1; i++) \ - table->array_name[i] = table->array_name[i + 1]; \ - table->array_name[--table->nr] = NULL; \ +#define MAKE_REMOVE_FROM(table_type, array_name) \ + void remove_from_##table_type(struct table_type *table, int idx) \ + { \ + int i; \ + for (i = idx; i < table->nr - 1; i++) \ + table->array_name[i] = table->array_name[i + 1]; \ + memset(&table->array_name[--table->nr], 0, sizeof(table->array_name[0])); \ } #define MAKE_GET_IDX(table_type, item_type, array_name) \ -- cgit v1.2.3-70-g09d2