system/settings: general code cleaning

* Remove duplicate checks, use switch/case whenever possible
* Remove assertions just before if () condition checking the exact
  same thing
* Replace if (condition) assert(0) with assert(condition)

Signed-off-by: Jean THOMAS <jean@lambdaconcept.com>
This commit is contained in:
Jean THOMAS 2025-06-25 15:35:23 +02:00 committed by Alan C. Assis
parent 92c490579d
commit 4be82876e4

View file

@ -249,7 +249,6 @@ static int set_string(FAR setting_t *setting, FAR char *str)
return -EACCES;
}
ASSERT(strlen(str) < CONFIG_SYSTEM_SETTINGS_VALUE_SIZE);
if (strlen(str) >= CONFIG_SYSTEM_SETTINGS_VALUE_SIZE)
{
return -EINVAL;
@ -284,28 +283,29 @@ static int set_string(FAR setting_t *setting, FAR char *str)
static int get_int(FAR setting_t *setting, FAR int *i)
{
assert(setting);
if ((setting->type != SETTING_INT) &&
(setting->type != SETTING_BOOL) &&
(setting->type != SETTING_FLOAT))
{
return -EACCES;
}
if (setting->type == SETTING_INT)
switch (setting->type)
{
*i = setting->val.i;
}
else if (setting->type == SETTING_BOOL)
{
*i = !!setting->val.i;
}
else if (setting->type == SETTING_FLOAT)
{
*i = (int)setting->val.f;
}
else
{
return -EINVAL;
case SETTING_INT:
{
*i = setting->val.i;
}
break;
case SETTING_BOOL:
{
*i = !!setting->val.i;
}
break;
case SETTING_FLOAT:
{
*i = (int)setting->val.f;
}
break;
default:
{
return -EACCES;
}
break;
}
return OK;
@ -359,19 +359,20 @@ static int set_int(FAR setting_t *setting, int i)
static int get_bool(FAR setting_t *setting, FAR int *i)
{
assert(setting);
if ((setting->type != SETTING_BOOL) &&
(setting->type != SETTING_INT))
{
return -EACCES;
}
if ((setting->type == SETTING_INT) || (setting->type == SETTING_BOOL))
switch (setting->type)
{
*i = !!setting->val.i;
}
else
{
return -EINVAL;
case SETTING_INT:
case SETTING_BOOL:
{
*i = !!setting->val.i;
}
break;
default:
{
return -EACCES;
}
break;
}
return OK;
@ -423,23 +424,24 @@ static int set_bool(FAR setting_t *setting, int i)
static int get_float(FAR setting_t *setting, FAR double *f)
{
assert(setting);
if ((setting->type != SETTING_FLOAT) &&
(setting->type != SETTING_INT))
{
return -EACCES;
}
if (setting->type == SETTING_FLOAT)
switch (setting->type)
{
*f = setting->val.f;
}
else if (setting->type == SETTING_INT)
{
*f = (double)setting->val.i;
}
else
{
return -EINVAL;
case SETTING_FLOAT:
{
*f = setting->val.f;
}
break;
case SETTING_INT:
{
*f = (double)setting->val.i;
}
break;
default:
{
return -EACCES;
}
break;
}
return OK;
@ -494,24 +496,24 @@ static int get_ip(FAR setting_t *setting, FAR struct in_addr *ip)
{
int ret;
assert(setting);
if ((setting->type != SETTING_IP_ADDR) &&
(setting->type != SETTING_STRING))
{
return -EACCES;
}
if (setting->type == SETTING_IP_ADDR)
switch (setting->type)
{
memcpy(ip, &setting->val.ip, sizeof(struct in_addr));
ret = OK;
}
else if (setting->type == SETTING_STRING)
{
ret = inet_pton(AF_INET, setting->val.s, ip);
}
else
{
ret = -EINVAL;
case SETTING_IP_ADDR:
{
memcpy(ip, &setting->val.ip, sizeof(struct in_addr));
ret = OK;
}
break;
case SETTING_STRING:
{
ret = inet_pton(AF_INET, setting->val.s, ip);
}
break;
default:
{
return -EACCES;
}
}
return ret;
@ -673,10 +675,7 @@ static void dump_cache(union sigval ptr)
int i;
ret = pthread_mutex_lock(&g_settings.mtx);
if (ret < 0)
{
assert(0);
}
assert(ret >= 0);
for (i = 0; i < CONFIG_SYSTEM_SETTINGS_MAX_STORAGES; i++)
{
@ -809,10 +808,7 @@ int settings_setstorage(FAR char *file, enum storage_type_e type)
int idx = 0;
uint32_t h;
if (!g_settings.initialized)
{
assert(0);
}
assert(g_settings.initialized);
ret = pthread_mutex_lock(&g_settings.mtx);
if (ret < 0)
@ -908,10 +904,7 @@ int settings_sync(bool wait_dump)
int ret = OK;
uint32_t h;
if (!g_settings.initialized)
{
assert(0);
}
assert(g_settings.initialized);
ret = pthread_mutex_lock(&g_settings.mtx);
if (ret < 0)
@ -971,10 +964,7 @@ int settings_notify(void)
int ret;
int idx = 0;
if (!g_settings.initialized)
{
assert(0);
}
assert(g_settings.initialized);
ret = pthread_mutex_lock(&g_settings.mtx);
if (ret < 0)
@ -1026,10 +1016,7 @@ errout:
int settings_hash(FAR uint32_t *h)
{
if (!g_settings.initialized)
{
assert(0);
}
assert(g_settings.initialized);
*h = g_settings.hash;
@ -1062,10 +1049,7 @@ int settings_clear(void)
{
int ret;
if (!g_settings.initialized)
{
assert(0);
}
assert(g_settings.initialized);
ret = pthread_mutex_lock(&g_settings.mtx);
if (ret < 0)
@ -1114,26 +1098,18 @@ int settings_create(FAR char *key, enum settings_type_e type, ...)
FAR setting_t *setting = NULL;
int j;
if (!g_settings.initialized)
{
assert(0);
}
assert(g_settings.initialized);
assert(type != SETTING_EMPTY);
assert(strlen(key));
if (strlen(key) == 0)
if (type == SETTING_EMPTY)
{
return -EINVAL;
}
assert(strlen(key) < CONFIG_SYSTEM_SETTINGS_KEY_SIZE);
if (strlen(key) >= CONFIG_SYSTEM_SETTINGS_KEY_SIZE)
if (strlen(key) == 0 || strlen(key) >= CONFIG_SYSTEM_SETTINGS_KEY_SIZE)
{
return -EINVAL;
}
assert(isalpha(key[0]) && (sanity_check(key) == OK));
if (!isalpha(key[0]) || (sanity_check(key) < 0))
{
return -EINVAL;
@ -1168,7 +1144,6 @@ int settings_create(FAR char *key, enum settings_type_e type, ...)
}
}
assert(setting);
if (setting == NULL)
{
goto errout;
@ -1314,11 +1289,7 @@ int settings_type(FAR char *key, FAR enum settings_type_e *stype)
int ret;
FAR setting_t *setting = NULL;
if (!g_settings.initialized)
{
assert(0);
}
assert(g_settings.initialized);
assert(stype != NULL);
assert(key != NULL);
@ -1362,11 +1333,7 @@ int settings_get(FAR char *key, enum settings_type_e type, ...)
int ret;
FAR setting_t *setting = NULL;
if (!g_settings.initialized)
{
assert(0);
}
assert(g_settings.initialized);
assert(type != SETTING_EMPTY);
assert(key[0] != '\0');
@ -1461,11 +1428,7 @@ int settings_set(FAR char *key, enum settings_type_e type, ...)
FAR setting_t *setting = NULL;
uint32_t h;
if (!g_settings.initialized)
{
assert(0);
}
assert(g_settings.initialized);
assert(type != SETTING_EMPTY);
assert(key[0] != '\0');
@ -1568,11 +1531,7 @@ int settings_iterate(int idx, FAR setting_t *setting)
{
int ret;
if (!g_settings.initialized)
{
assert(0);
}
assert(g_settings.initialized);
assert(setting);
if ((idx < 0) || (idx >= CONFIG_SYSTEM_SETTINGS_MAP_SIZE))