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].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)
|
||||
list->list[list->size].setting = (rarch_setting_t*)setting_data_find_setting(setting_data, label);
|
||||
}
|
||||
if (setting_data)
|
||||
list->list[list->size].setting = (rarch_setting_t*)setting_data_find_setting(setting_data, label);
|
||||
|
||||
if (list->list[list->size].setting)
|
||||
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;
|
||||
|
||||
if (!name)
|
||||
return NULL;
|
||||
goto notfound;
|
||||
|
||||
for (setting = settings; setting->type != ST_NONE; setting++)
|
||||
{
|
||||
if (setting->type <= ST_GROUP && strcmp(setting->name, name) == 0)
|
||||
{
|
||||
goto found;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
goto notfound;
|
||||
found:
|
||||
if (setting->short_description && setting->short_description[0] == '\0')
|
||||
return NULL;
|
||||
goto notfound;
|
||||
|
||||
if (setting->read_handler)
|
||||
setting->read_handler(setting);
|
||||
|
||||
return setting;
|
||||
|
||||
notfound:
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void setting_data_set_with_string_representation(const rarch_setting_t* setting, const char* value)
|
||||
|
|
Loading…
Reference in New Issue