env: Allow returning errors from hdelete_r()

At present this function returns 1 on success and 0 on failure. But in
the latter case it provides no indication of what went wrong.

If an attempt is made to delete a non-existent variable, the caller may
want to ignore this error. This happens when setting a non-existent
variable to "", for example.

Update the function to return 0 on success and a useful error code on
failure. Add a function comment too.

Make sure that env_set() does not return an error if it is deleting a
variable that doesn't exist. We could update env_set() to return useful
error numbers also, but that is beyond the scope of this change.

Signed-off-by: Simon Glass <sjg@chromium.org>

wip
This commit is contained in:
Simon Glass
2020-11-05 10:33:37 -07:00
committed by Tom Rini
parent 4c450daf7d
commit 96434a76fd
4 changed files with 21 additions and 10 deletions

View File

@@ -80,7 +80,7 @@ static int htab_create_delete(struct unit_test_state *uts,
ut_asserteq_str(key, ritem->key);
ut_asserteq_str(key, ritem->data);
ut_asserteq(1, hdelete_r(key, htab, 0));
ut_asserteq(0, hdelete_r(key, htab, 0));
}
return 0;