u-boot/lib
Quentin Schulz d9fc9077eb hashtable: do not recreate whole hash table if vars are passed to himport_r
When vars are passed to the himport_r function with H_NOCLEAR flag,
those vars will be overridden in the current environment and if one of
those vars is not in the imported environment, it'll be deleted in the
current environment whatever the flag passed to himport_r.

The H_NOCLEAR flag is used to clear the whole environment whether vars
are passed to the function or not.

This leads to incoherent behaviour. If one passes vars to himport_r
with the H_NOCLEAR flag, if a var in vars is not in the imported env,
that var will be removed from the current env.

If one passes vars to himport_r without the H_NOCLEAR flag, the whole
environment will be removed and vars will be imported from the
environment in RAM.

It makes more sense to keep the variable that is in the current
environment but not in the imported environment if the H_NOCLEAR flag is
set and remove only that variable if the H_NOCLEAR flag is not set.

Let's clear the whole environment only if H_NOCLEAR and vars are not
passed to himport_r.

Let's remove variables that are in the current environment but not in
the imported env only if the H_NOCLEAR flag is not passed.

Suggested-by: Wolfgang Denk <wd@denx.de>
Signed-off-by: Quentin Schulz <quentin.schulz@bootlin.com>
2018-07-20 15:55:09 -04:00
..
at91 SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
bzip2 SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
dhry SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
efi efi: stub: Move the use_uart assignment immediately after exit_boot_services() call 2018-06-24 08:56:04 +08:00
efi_driver SPDX: Convert a few files that were missed before 2018-05-10 20:38:35 -04:00
efi_loader efi_loader: helloworld: Output ACPI configuration table 2018-07-02 09:23:28 +08:00
efi_selftest SPDX: Fixup tags from latest EFI PR 2018-06-03 16:10:22 -04:00
libavb libavb: Update SPDX tag style 2018-06-19 11:55:05 -04:00
libfdt scripts/dtc: Update to upstream version v1.4.6-9-gaadd0b65c987 2018-05-31 08:53:11 -04:00
lzma SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
lzo SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
optee SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
rsa xilinx: zynq: Add support to secure images 2018-07-19 10:49:54 +02:00
tizen SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
zlib SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
addr_map.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
aes.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
asm-offsets.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
bch.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
bitrev.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
charset.c SPDX: Convert a few files that were missed before 2018-05-10 20:38:35 -04:00
circbuf.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
crc7.c
crc8.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
crc16.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
crc32.c lib: Kconfig: Move DYNAMIC_CRC_TABLE to Kconfig 2018-02-14 12:14:11 -05:00
crc32c.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
ctype.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
display_options.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
div64.c lib: div64: sync with Linux 2017-04-13 09:41:10 -04:00
errno.c
errno_str.c
fdtdec.c lib: fdtdec: Rename routine fdtdec_setup_memory_size() 2018-07-19 10:49:56 +02:00
fdtdec_common.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
fdtdec_test.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
gunzip.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
gzip.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
hang.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
hashtable.c hashtable: do not recreate whole hash table if vars are passed to himport_r 2018-07-20 15:55:09 -04:00
hexdump.c lib: Add hexdump 2018-06-13 07:49:12 -04:00
image-sparse.c mmc: Separate "mmc swrite" from fastboot 2018-05-30 11:59:21 +02:00
initcall.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
Kconfig avb2.0: integrate avb 2.0 into the build system 2018-06-18 13:55:13 -04:00
ldiv.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
linux_compat.c
linux_string.c
list_sort.c
lmb.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
lz4.c SPDX: Convert a few files that were missed before 2018-05-10 20:38:35 -04:00
lz4_wrapper.c SPDX: Convert all of our multiple license tags to Linux Kernel style 2018-05-07 10:24:31 -04:00
Makefile avb2.0: integrate avb 2.0 into the build system 2018-06-18 13:55:13 -04:00
md5.c
membuff.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
net_utils.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
of_live.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
panic.c Consolidate __assert_failed into one implementation 2018-04-28 18:32:23 -04:00
physmem.c lib/physmem.c: Switch to __weak for arch_phys_memset 2016-04-01 17:17:43 -04:00
qsort.c
rand.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
rbtree.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
rc4.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
sha1.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
sha256.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
slre.c lib/slre: remove superfluous assignment 2017-05-12 08:37:18 -04:00
smbios.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
string.c string: Add strcspn() 2017-06-01 07:03:12 -06:00
strmhz.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
strto.c lib: strto: fix incorrect handling of specified base 2017-09-14 21:32:59 -04:00
tables_csum.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
time.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
tiny-printf.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
tpm-common.c tpm: report driver error code to upper layer 2018-05-25 20:12:56 -04:00
tpm-utils.h tpm: add macros to enhance TPM commands readability 2018-05-25 20:12:56 -04:00
tpm-v1.c tpm: disociate TPMv1.x specific and generic code 2018-05-25 20:12:55 -04:00
tpm-v2.c tpm: add PCR authentication commands support 2018-05-25 20:12:59 -04:00
trace.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
uuid.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
vsprintf.c lib: Add hexdump 2018-06-13 07:49:12 -04:00