mirror of
https://github.com/libretro/RetroArch
synced 2025-02-19 12:41:00 +00:00
Optimize core_info_get_name
This commit is contained in:
parent
502d3ffa3a
commit
c8b1aacefe
34
core_info.c
34
core_info.c
@ -633,8 +633,6 @@ void core_info_list_get_supported_cores(core_info_list_t *core_info_list,
|
|||||||
void core_info_get_name(const char *path, char *s, size_t len)
|
void core_info_get_name(const char *path, char *s, size_t len)
|
||||||
{
|
{
|
||||||
size_t i;
|
size_t i;
|
||||||
core_info_t *core_info = NULL;
|
|
||||||
core_info_list_t *core_info_list = NULL;
|
|
||||||
struct string_list *contents = NULL;
|
struct string_list *contents = NULL;
|
||||||
settings_t *settings = config_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
|
|
||||||
@ -648,47 +646,35 @@ void core_info_get_name(const char *path, char *s, size_t len)
|
|||||||
if (!contents)
|
if (!contents)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
core_info_list = (core_info_list_t*)calloc(1, sizeof(*core_info_list));
|
|
||||||
if (!core_info_list)
|
|
||||||
goto error;
|
|
||||||
|
|
||||||
core_info = (core_info_t*)calloc(contents->size, sizeof(*core_info));
|
|
||||||
if (!core_info)
|
|
||||||
goto error;
|
|
||||||
|
|
||||||
core_info_list->list = core_info;
|
|
||||||
core_info_list->count = contents->size;
|
|
||||||
|
|
||||||
for (i = 0; i < contents->size; i++)
|
for (i = 0; i < contents->size; i++)
|
||||||
{
|
{
|
||||||
char info_path[PATH_MAX_LENGTH];
|
char info_path[PATH_MAX_LENGTH];
|
||||||
|
config_file_t *conf = NULL;
|
||||||
|
char *new_core_name = NULL;
|
||||||
|
|
||||||
info_path[0] = '\0';
|
info_path[0] = '\0';
|
||||||
|
|
||||||
if (!string_is_equal(contents->elems[i].data, path))
|
if (!string_is_equal(contents->elems[i].data, path))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (core_info_list_iterate(info_path,
|
if (!core_info_list_iterate(info_path,
|
||||||
sizeof(info_path), contents, i)
|
sizeof(info_path), contents, i)
|
||||||
&& path_is_valid(info_path))
|
&& path_is_valid(info_path))
|
||||||
{
|
continue;
|
||||||
config_file_t *conf = config_file_new(info_path);
|
|
||||||
|
|
||||||
config_get_string(conf, "corename",
|
conf = config_file_new(info_path);
|
||||||
&core_info[i].core_name);
|
|
||||||
core_info[i].config_data = (void*)conf;
|
|
||||||
}
|
|
||||||
|
|
||||||
core_info[i].path = strdup(contents->elems[i].data);
|
config_get_string(conf, "corename",
|
||||||
|
&new_core_name);
|
||||||
|
strlcpy(s, new_core_name, len);
|
||||||
|
|
||||||
strlcpy(s, core_info[i].core_name, len);
|
config_file_free(conf);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
error:
|
|
||||||
if (contents)
|
if (contents)
|
||||||
dir_list_free(contents);
|
dir_list_free(contents);
|
||||||
contents = NULL;
|
contents = NULL;
|
||||||
core_info_list_free(core_info_list);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t core_info_list_num_info_files(core_info_list_t *core_info_list)
|
size_t core_info_list_num_info_files(core_info_list_t *core_info_list)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user