diff options
author | Vito Caputo <vcaputo@pengaru.com> | 2023-08-31 11:39:15 -0700 |
---|---|---|
committer | Vito Caputo <vcaputo@pengaru.com> | 2023-08-31 11:39:15 -0700 |
commit | c5e0f1db92673e7520e42563dff894b211187b28 (patch) | |
tree | e3ada72453981be794ae142d172df1b080e04669 | |
parent | 0bda624d63d375ffe9aa564e615d82f58ed0d4bb (diff) |
til_setup: add another helper for setup_func baking fails
This introduces til_setup_free_with_ret_err()
which just does the common idiom of:
- free the setup
- return with err code
so all these failure cases can be reduced to just a direct return
of calling this function.
Simpler version of til_setup_free_with_failed_setting_ret_err(),
which could have been reuesed for this by making the settings-related
parameters optional... but this way the call sites are less verbose
and these are tiny helpers it's harmless.
-rw-r--r-- | src/til_setup.c | 11 | ||||
-rw-r--r-- | src/til_setup.h | 1 |
2 files changed, 12 insertions, 0 deletions
diff --git a/src/til_setup.c b/src/til_setup.c index c06614f..d5231a1 100644 --- a/src/til_setup.c +++ b/src/til_setup.c @@ -124,3 +124,14 @@ int til_setup_free_with_failed_setting_ret_err(til_setup_t *setup, til_setting_t return err; } + + +/* another ergonomic helper for setup_funcs to use in res_setup baking */ +int til_setup_free_with_ret_err(til_setup_t *setup, int err) +{ + assert(err < 0); + + til_setup_free(setup); + + return err; +} diff --git a/src/til_setup.h b/src/til_setup.h index eac1444..4491461 100644 --- a/src/til_setup.h +++ b/src/til_setup.h @@ -19,5 +19,6 @@ void * til_setup_new(const til_settings_t *settings, size_t size, void (*free_fu void * til_setup_ref(til_setup_t *setup); void * til_setup_free(til_setup_t *setup); int til_setup_free_with_failed_setting_ret_err(til_setup_t *setup, til_setting_t *failed_setting, til_setting_t **res_setting, int err); +int til_setup_free_with_ret_err(til_setup_t *setup, int err); #endif |