summaryrefslogtreecommitdiff
path: root/lib/hashtable.c
diff options
context:
space:
mode:
authorRasmus Villemoes <rasmus.villemoes@prevas.dk>2020-02-27 13:56:12 +0000
committerTom Rini <trini@konsulko.com>2020-04-24 10:09:59 -0400
commit080019b86c997a9b7e13bc7b8f476fbf9a0e5f3c (patch)
tree79d730d1f93c336251fe391c7a157455f8465f9e /lib/hashtable.c
parent34284970a1736e7be35bef74e4f8e429e703c1ce (diff)
downloadu-boot-080019b86c997a9b7e13bc7b8f476fbf9a0e5f3c.tar.gz
make env_entry::callback conditional on !CONFIG_SPL_BUILD
The callback member of struct env_entry is always NULL for an SPL build. Removing it thus saves a bit of run-time memory in the SPL (when CONFIG_SPL_ENV_SUPPORT=y) since struct env_entry is embedded in struct env_entry_node - i.e. about 2KB for the normal case of 512+change hash table entries. Two small fixups are needed for this, all other references to the callback member are already under !CONFIG_SPL_BUILD: Don't initialize .callback in set_flags() - hsearch_r doesn't use that value anyway. And make env_callback_init() initialize ->callback to NULL for a new entry instead of relying on an unused or deleted entry having NULL in ->callback. Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk> Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'lib/hashtable.c')
-rw-r--r--lib/hashtable.c1
1 files changed, 0 insertions, 1 deletions
diff --git a/lib/hashtable.c b/lib/hashtable.c
index c4e1e2bd45..f82f2463cf 100644
--- a/lib/hashtable.c
+++ b/lib/hashtable.c
@@ -450,7 +450,6 @@ static void _hdelete(const char *key, struct hsearch_data *htab,
debug("hdelete: DELETING key \"%s\"\n", key);
free((void *)ep->key);
free(ep->data);
- ep->callback = NULL;
ep->flags = 0;
htab->table[idx].used = USED_DELETED;