refactor setting_data_find_setting - can now return NULL if it couldn't

find the setting according to key
This commit is contained in:
twinaphex 2014-08-08 21:50:22 +02:00
parent d94fba2d17
commit 6b217c9dce
2 changed files with 15 additions and 8 deletions

View File

@ -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);

View File

@ -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)