/** * content_init_file: * * Initializes and loads a content file for the currently * selected libretro core. * * Returns : true if successful, otherwise false. **/ static bool content_init_file(struct string_list *temporary_content) { unsigned i; struct retro_game_info *info = NULL; bool ret = false; struct string_list* additional_path_allocs = NULL; struct string_list *content = NULL; const struct retro_subsystem_info *special = NULL; rarch_system_info_t *system = NULL; global_t *global = global_get_ptr(); runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &system); if (*global->subsystem) { special = init_content_file_subsystem(&ret, system); if (!ret) goto error; } content = string_list_new(); if (!content) goto error; if (!init_content_file_set_attribs(temporary_content, content, system, special)) goto error; info = (struct retro_game_info*) calloc(content->size, sizeof(*info)); additional_path_allocs = string_list_new(); ret = load_content(temporary_content, info, content, special, additional_path_allocs); for (i = 0; i < content->size; i++) free((void*)info[i].data); string_list_free(additional_path_allocs); if (info) free(info); error: if (content) string_list_free(content); return ret; }
/** * content_init_file: * * Initializes and loads a content file for the currently * selected libretro core. * * Returns : true if successful, otherwise false. **/ static bool content_file_init(struct string_list *temporary_content) { struct retro_game_info *info = NULL; struct string_list *content = NULL; bool ret = false; const struct retro_subsystem_info *special = init_content_file_subsystem(&ret); if (!ret) goto error; content = string_list_new(); if (!content) goto error; if (!init_content_file_set_attribs(temporary_content, content, special)) goto error; info = (struct retro_game_info*) calloc(content->size, sizeof(*info)); if (info) { unsigned i; ret = load_content(temporary_content, info, content, special); for (i = 0; i < content->size; i++) free((void*)info[i].data); free(info); } error: if (content) string_list_free(content); return ret; }