refactor setting_data_find_setting - can now return NULL if it couldn't
find the setting according to key
This commit is contained in:
parent
d94fba2d17
commit
6b217c9dce
|
@ -52,13 +52,10 @@ void file_list_push(file_list_t *list,
|
||||||
list->list[list->size].label = strdup(label);
|
list->list[list->size].label = strdup(label);
|
||||||
list->list[list->size].setting = NULL;
|
list->list[list->size].setting = NULL;
|
||||||
|
|
||||||
if (label && label[0] != '\0')
|
rarch_setting_t *setting_data = (rarch_setting_t *)setting_data_get_list();
|
||||||
{
|
|
||||||
rarch_setting_t *setting_data = (rarch_setting_t *)setting_data_get_list();
|
|
||||||
|
|
||||||
if (setting_data)
|
if (setting_data)
|
||||||
list->list[list->size].setting = (rarch_setting_t*)setting_data_find_setting(setting_data, label);
|
list->list[list->size].setting = (rarch_setting_t*)setting_data_find_setting(setting_data, label);
|
||||||
}
|
|
||||||
|
|
||||||
if (list->list[list->size].setting)
|
if (list->list[list->size].setting)
|
||||||
list->list[list->size].path = strdup(list->list[list->size].setting->short_description);
|
list->list[list->size].path = strdup(list->list[list->size].setting->short_description);
|
||||||
|
|
|
@ -280,19 +280,29 @@ rarch_setting_t* setting_data_find_setting(rarch_setting_t* settings, const char
|
||||||
rarch_setting_t *setting = NULL;
|
rarch_setting_t *setting = NULL;
|
||||||
|
|
||||||
if (!name)
|
if (!name)
|
||||||
return NULL;
|
goto notfound;
|
||||||
|
|
||||||
for (setting = settings; setting->type != ST_NONE; setting++)
|
for (setting = settings; setting->type != ST_NONE; setting++)
|
||||||
|
{
|
||||||
if (setting->type <= ST_GROUP && strcmp(setting->name, name) == 0)
|
if (setting->type <= ST_GROUP && strcmp(setting->name, name) == 0)
|
||||||
|
{
|
||||||
|
goto found;
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
goto notfound;
|
||||||
|
found:
|
||||||
if (setting->short_description && setting->short_description[0] == '\0')
|
if (setting->short_description && setting->short_description[0] == '\0')
|
||||||
return NULL;
|
goto notfound;
|
||||||
|
|
||||||
if (setting->read_handler)
|
if (setting->read_handler)
|
||||||
setting->read_handler(setting);
|
setting->read_handler(setting);
|
||||||
|
|
||||||
return setting;
|
return setting;
|
||||||
|
|
||||||
|
notfound:
|
||||||
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void setting_data_set_with_string_representation(const rarch_setting_t* setting, const char* value)
|
void setting_data_set_with_string_representation(const rarch_setting_t* setting, const char* value)
|
||||||
|
|
Loading…
Reference in New Issue