make env_entry::callback conditional on !CONFIG_SPL_BUILD
authorRasmus Villemoes <rasmus.villemoes@prevas.dk>
Thu, 27 Feb 2020 13:56:12 +0000 (13:56 +0000)
committerTom Rini <trini@konsulko.com>
Fri, 24 Apr 2020 14:09:59 +0000 (10:09 -0400)
commit080019b86c997a9b7e13bc7b8f476fbf9a0e5f3c
tree79d730d1f93c336251fe391c7a157455f8465f9e
parent34284970a1736e7be35bef74e4f8e429e703c1ce
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>
env/callback.c
env/flags.c
include/search.h
lib/hashtable.c