mirror of
https://github.com/libretro/RetroArch
synced 2025-03-28 19:20:35 +00:00
(task_content.c) Move global variables to struct
This commit is contained in:
parent
0611581b28
commit
f13a4b10ee
@ -120,7 +120,7 @@ typedef struct content_information_ctx content_information_ctx_t;
|
||||
#ifdef HAVE_CDROM
|
||||
enum cdrom_dump_state
|
||||
{
|
||||
DUMP_STATE_TOC_PENDING,
|
||||
DUMP_STATE_TOC_PENDING = 0,
|
||||
DUMP_STATE_WRITE_CUE,
|
||||
DUMP_STATE_NEXT_TRACK,
|
||||
DUMP_STATE_READ_TRACK
|
||||
@ -128,33 +128,43 @@ enum cdrom_dump_state
|
||||
|
||||
typedef struct
|
||||
{
|
||||
RFILE *file;
|
||||
RFILE *output_file;
|
||||
libretro_vfs_implementation_file *stream;
|
||||
const cdrom_toc_t *toc;
|
||||
char cdrom_path[64];
|
||||
char drive_letter[2];
|
||||
char title[512];
|
||||
bool next;
|
||||
enum cdrom_dump_state state;
|
||||
unsigned char cur_track;
|
||||
int64_t cur_track_bytes;
|
||||
int64_t track_written_bytes;
|
||||
int64_t disc_total_bytes;
|
||||
int64_t disc_read_bytes;
|
||||
bool next;
|
||||
enum cdrom_dump_state state;
|
||||
char drive_letter[2];
|
||||
char cdrom_path[64];
|
||||
char title[512];
|
||||
const cdrom_toc_t *toc;
|
||||
RFILE *file;
|
||||
RFILE *output_file;
|
||||
libretro_vfs_implementation_file *stream;
|
||||
} task_cdrom_dump_state_t;
|
||||
#endif
|
||||
|
||||
struct content_stream
|
||||
{
|
||||
uint32_t a;
|
||||
const uint8_t *b;
|
||||
size_t c;
|
||||
uint32_t a;
|
||||
uint32_t crc;
|
||||
};
|
||||
|
||||
struct content_information_ctx
|
||||
{
|
||||
bool is_ips_pref;
|
||||
bool is_bps_pref;
|
||||
bool is_ups_pref;
|
||||
bool block_extract;
|
||||
bool need_fullpath;
|
||||
bool set_supports_no_game_enable;
|
||||
bool patch_is_blocked;
|
||||
bool bios_is_missing;
|
||||
bool check_firmware_before_loading;
|
||||
|
||||
struct
|
||||
{
|
||||
struct retro_subsystem_info *data;
|
||||
@ -169,38 +179,33 @@ struct content_information_ctx
|
||||
char *directory_cache;
|
||||
char *directory_system;
|
||||
|
||||
bool is_ips_pref;
|
||||
bool is_bps_pref;
|
||||
bool is_ups_pref;
|
||||
bool block_extract;
|
||||
bool need_fullpath;
|
||||
bool set_supports_no_game_enable;
|
||||
bool patch_is_blocked;
|
||||
bool bios_is_missing;
|
||||
bool check_firmware_before_loading;
|
||||
|
||||
struct string_list *temporary_content;
|
||||
};
|
||||
|
||||
static struct string_list *temporary_content = NULL;
|
||||
static bool _launched_from_cli = true;
|
||||
static bool _content_is_inited = false;
|
||||
static bool core_does_not_need_content = false;
|
||||
static uint32_t content_rom_crc = 0;
|
||||
|
||||
static bool pending_subsystem_init = false;
|
||||
static int pending_subsystem_rom_num = 0;
|
||||
static int pending_subsystem_id = 0;
|
||||
static unsigned pending_subsystem_rom_id = 0;
|
||||
typedef struct content_state
|
||||
{
|
||||
bool is_inited;
|
||||
bool core_does_not_need_content;
|
||||
bool pending_subsystem_init;
|
||||
bool pending_rom_crc;
|
||||
|
||||
static bool pending_content_rom_crc = false;
|
||||
static char pending_content_rom_crc_path[PATH_MAX_LENGTH] = {0};
|
||||
int pending_subsystem_rom_num;
|
||||
int pending_subsystem_id;
|
||||
unsigned pending_subsystem_rom_id;
|
||||
uint32_t rom_crc;
|
||||
|
||||
static char pending_subsystem_ident[255];
|
||||
static char *pending_subsystem_roms[RARCH_MAX_SUBSYSTEM_ROMS];
|
||||
char companion_ui_crc32[32];
|
||||
char pending_subsystem_ident[255];
|
||||
char pending_rom_crc_path[PATH_MAX_LENGTH];
|
||||
char companion_ui_db_name[PATH_MAX_LENGTH];
|
||||
char *pending_subsystem_roms[RARCH_MAX_SUBSYSTEM_ROMS];
|
||||
|
||||
static char companion_ui_db_name[PATH_MAX_LENGTH] = {0};
|
||||
static char companion_ui_crc32[32] = {0};
|
||||
struct string_list *temporary_content;
|
||||
} content_state_t;
|
||||
|
||||
static content_state_t content_st = {};
|
||||
|
||||
#ifdef HAVE_CDROM
|
||||
static void task_cdrom_dump_handler(retro_task_t *task)
|
||||
@ -213,15 +218,11 @@ static void task_cdrom_dump_handler(retro_task_t *task)
|
||||
if (task_get_progress(task) == 100)
|
||||
{
|
||||
if (state->file)
|
||||
{
|
||||
filestream_close(state->file);
|
||||
state->file = NULL;
|
||||
}
|
||||
if (state->output_file)
|
||||
{
|
||||
filestream_close(state->output_file);
|
||||
state->file = NULL;
|
||||
}
|
||||
state->file = NULL;
|
||||
state->output_file = NULL;
|
||||
|
||||
task_set_finished(task, true);
|
||||
|
||||
@ -581,6 +582,7 @@ static bool content_load(content_ctx_info_t *info)
|
||||
char **rarch_argv_ptr = (char**)info->argv;
|
||||
int *rarch_argc_ptr = (int*)&info->argc;
|
||||
struct rarch_main_wrap *wrap_args = NULL;
|
||||
content_state_t *p_content = (content_state_t*)&content_st;
|
||||
|
||||
if (!(wrap_args = (struct rarch_main_wrap*)
|
||||
calloc(1, sizeof(*wrap_args))))
|
||||
@ -613,7 +615,7 @@ static bool content_load(content_ctx_info_t *info)
|
||||
return false;
|
||||
}
|
||||
|
||||
if (pending_subsystem_init)
|
||||
if (p_content->pending_subsystem_init)
|
||||
{
|
||||
command_event(CMD_EVENT_CORE_INIT, NULL);
|
||||
content_clear_subsystem();
|
||||
@ -656,7 +658,8 @@ static bool load_content_into_memory(
|
||||
unsigned i, const char *path, void **buf,
|
||||
int64_t *length)
|
||||
{
|
||||
uint8_t *ret_buf = NULL;
|
||||
uint8_t *ret_buf = NULL;
|
||||
content_state_t *p_content = (content_state_t*)&content_st;
|
||||
|
||||
RARCH_LOG("%s: %s.\n",
|
||||
msg_hash_to_str(MSG_LOADING_CONTENT_FILE), path);
|
||||
@ -693,18 +696,18 @@ static bool load_content_into_memory(
|
||||
|
||||
if (has_patch)
|
||||
{
|
||||
content_rom_crc = encoding_crc32(0, ret_buf, (size_t)*length);
|
||||
RARCH_LOG("CRC32: 0x%x .\n", (unsigned)content_rom_crc);
|
||||
p_content->rom_crc = encoding_crc32(0, ret_buf, (size_t)*length);
|
||||
RARCH_LOG("CRC32: 0x%x .\n", (unsigned)p_content->rom_crc);
|
||||
}
|
||||
else
|
||||
{
|
||||
pending_content_rom_crc = true;
|
||||
strlcpy(pending_content_rom_crc_path,
|
||||
path, sizeof(pending_content_rom_crc_path));
|
||||
p_content->pending_rom_crc = true;
|
||||
strlcpy(p_content->pending_rom_crc_path,
|
||||
path, sizeof(p_content->pending_rom_crc_path));
|
||||
}
|
||||
}
|
||||
else
|
||||
content_rom_crc = 0;
|
||||
p_content->rom_crc = 0;
|
||||
}
|
||||
|
||||
*buf = ret_buf;
|
||||
@ -898,6 +901,7 @@ static bool content_file_load(
|
||||
#ifdef __WINRT__
|
||||
rarch_system_info_t *system = runloop_get_system_info();
|
||||
#endif
|
||||
content_state_t *p_content = (content_state_t*)&content_st;
|
||||
|
||||
for (i = 0; i < content->size; i++)
|
||||
{
|
||||
@ -1042,9 +1046,9 @@ static bool content_file_load(
|
||||
|
||||
RARCH_LOG("%s\n", msg_hash_to_str(
|
||||
MSG_CONTENT_LOADING_SKIPPED_IMPLEMENTATION_WILL_DO_IT));
|
||||
pending_content_rom_crc = true;
|
||||
strlcpy(pending_content_rom_crc_path,
|
||||
path, sizeof(pending_content_rom_crc_path));
|
||||
p_content->pending_rom_crc = true;
|
||||
strlcpy(p_content->pending_rom_crc_path,
|
||||
path, sizeof(p_content->pending_rom_crc_path));
|
||||
|
||||
}
|
||||
}
|
||||
@ -1300,8 +1304,9 @@ static void task_push_to_history_list(
|
||||
bool launched_from_cli,
|
||||
bool launched_from_companion_ui)
|
||||
{
|
||||
bool contentless = false;
|
||||
bool is_inited = false;
|
||||
bool contentless = false;
|
||||
bool is_inited = false;
|
||||
content_state_t *p_content = (content_state_t*)&content_st;
|
||||
|
||||
content_get_status(&contentless, &is_inited);
|
||||
|
||||
@ -1382,11 +1387,11 @@ static void task_push_to_history_list(
|
||||
{
|
||||
/* Database name + checksum are supplied
|
||||
* by the companion UI itself */
|
||||
if (!string_is_empty(companion_ui_crc32))
|
||||
crc32 = companion_ui_crc32;
|
||||
if (!string_is_empty(p_content->companion_ui_crc32))
|
||||
crc32 = p_content->companion_ui_crc32;
|
||||
|
||||
if (!string_is_empty(companion_ui_db_name))
|
||||
db_name = companion_ui_db_name;
|
||||
if (!string_is_empty(p_content->companion_ui_db_name))
|
||||
db_name = p_content->companion_ui_db_name;
|
||||
}
|
||||
#ifdef HAVE_MENU
|
||||
else
|
||||
@ -2094,19 +2099,22 @@ bool task_push_load_content_with_new_core_from_companion_ui(
|
||||
retro_task_callback_t cb,
|
||||
void *user_data)
|
||||
{
|
||||
global_t *global = global_get_ptr();
|
||||
global_t *global = global_get_ptr();
|
||||
content_state_t *p_content = (content_state_t*)&content_st;
|
||||
|
||||
path_set(RARCH_PATH_CONTENT, fullpath);
|
||||
path_set(RARCH_PATH_CORE, core_path);
|
||||
|
||||
companion_ui_db_name[0] = '\0';
|
||||
companion_ui_crc32[0] = '\0';
|
||||
p_content->companion_ui_db_name[0] = '\0';
|
||||
p_content->companion_ui_crc32[0] = '\0';
|
||||
|
||||
if (!string_is_empty(db_name))
|
||||
strlcpy(companion_ui_db_name, db_name, sizeof(companion_ui_db_name));
|
||||
strlcpy(p_content->companion_ui_db_name,
|
||||
db_name, sizeof(p_content->companion_ui_db_name));
|
||||
|
||||
if (!string_is_empty(crc32))
|
||||
strlcpy(companion_ui_crc32, crc32, sizeof(companion_ui_crc32));
|
||||
strlcpy(p_content->companion_ui_crc32,
|
||||
crc32, sizeof(p_content->companion_ui_crc32));
|
||||
|
||||
#ifdef HAVE_DYNAMIC
|
||||
command_event(CMD_EVENT_LOAD_CORE, NULL);
|
||||
@ -2184,12 +2192,14 @@ bool task_push_load_content_with_current_core_from_companion_ui(
|
||||
retro_task_callback_t cb,
|
||||
void *user_data)
|
||||
{
|
||||
content_state_t *p_content = (content_state_t*)&content_st;
|
||||
|
||||
path_set(RARCH_PATH_CONTENT, fullpath);
|
||||
|
||||
/* TODO/FIXME: Enable setting of these values
|
||||
* via function arguments */
|
||||
companion_ui_db_name[0] = '\0';
|
||||
companion_ui_crc32[0] = '\0';
|
||||
p_content->companion_ui_db_name[0] = '\0';
|
||||
p_content->companion_ui_crc32[0] = '\0';
|
||||
|
||||
/* Load content
|
||||
* > TODO/FIXME: Set loading_from_companion_ui 'false' for
|
||||
@ -2239,7 +2249,9 @@ bool task_push_load_subsystem_with_core_from_menu(
|
||||
retro_task_callback_t cb,
|
||||
void *user_data)
|
||||
{
|
||||
pending_subsystem_init = true;
|
||||
content_state_t *p_content = (content_state_t*)&content_st;
|
||||
|
||||
p_content->pending_subsystem_init = true;
|
||||
|
||||
/* Load content */
|
||||
if (!task_load_content_callback(content_info, true, false, false))
|
||||
@ -2261,24 +2273,27 @@ void content_get_status(
|
||||
bool *contentless,
|
||||
bool *is_inited)
|
||||
{
|
||||
*contentless = core_does_not_need_content;
|
||||
*is_inited = _content_is_inited;
|
||||
content_state_t *p_content = (content_state_t*)&content_st;
|
||||
|
||||
*contentless = p_content->core_does_not_need_content;
|
||||
*is_inited = p_content->is_inited;
|
||||
}
|
||||
|
||||
/* Clears the pending subsystem rom buffer*/
|
||||
void content_clear_subsystem(void)
|
||||
{
|
||||
unsigned i;
|
||||
content_state_t *p_content = (content_state_t*)&content_st;
|
||||
|
||||
pending_subsystem_rom_id = 0;
|
||||
pending_subsystem_init = false;
|
||||
p_content->pending_subsystem_rom_id = 0;
|
||||
p_content->pending_subsystem_init = false;
|
||||
|
||||
for (i = 0; i < RARCH_MAX_SUBSYSTEM_ROMS; i++)
|
||||
{
|
||||
if (pending_subsystem_roms[i])
|
||||
if (p_content->pending_subsystem_roms[i])
|
||||
{
|
||||
free(pending_subsystem_roms[i]);
|
||||
pending_subsystem_roms[i] = NULL;
|
||||
free(p_content->pending_subsystem_roms[i]);
|
||||
p_content->pending_subsystem_roms[i] = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -2292,14 +2307,16 @@ bool content_launched_from_cli(void)
|
||||
/* Get the current subsystem */
|
||||
int content_get_subsystem(void)
|
||||
{
|
||||
return pending_subsystem_id;
|
||||
content_state_t *p_content = (content_state_t*)&content_st;
|
||||
return p_content->pending_subsystem_id;
|
||||
}
|
||||
|
||||
/* Set the current subsystem*/
|
||||
void content_set_subsystem(unsigned idx)
|
||||
{
|
||||
rarch_system_info_t *system = runloop_get_system_info();
|
||||
const struct retro_subsystem_info *subsystem;
|
||||
rarch_system_info_t *system = runloop_get_system_info();
|
||||
content_state_t *p_content = (content_state_t*)&content_st;
|
||||
|
||||
/* Core fully loaded, use the subsystem data */
|
||||
if (system->subsystem.data)
|
||||
@ -2308,18 +2325,20 @@ void content_set_subsystem(unsigned idx)
|
||||
else
|
||||
subsystem = subsystem_data + idx;
|
||||
|
||||
pending_subsystem_id = idx;
|
||||
p_content->pending_subsystem_id = idx;
|
||||
|
||||
if (subsystem && subsystem_current_count > 0)
|
||||
{
|
||||
strlcpy(pending_subsystem_ident,
|
||||
subsystem->ident, sizeof(pending_subsystem_ident));
|
||||
strlcpy(p_content->pending_subsystem_ident,
|
||||
subsystem->ident, sizeof(p_content->pending_subsystem_ident));
|
||||
|
||||
pending_subsystem_rom_num = subsystem->num_roms;
|
||||
p_content->pending_subsystem_rom_num = subsystem->num_roms;
|
||||
}
|
||||
|
||||
RARCH_LOG("[subsystem] settings current subsytem to: %d(%s) roms: %d\n",
|
||||
pending_subsystem_id, pending_subsystem_ident, pending_subsystem_rom_num);
|
||||
p_content->pending_subsystem_id,
|
||||
p_content->pending_subsystem_ident,
|
||||
p_content->pending_subsystem_rom_num);
|
||||
}
|
||||
|
||||
/* Sets the subsystem by name */
|
||||
@ -2376,63 +2395,77 @@ void content_get_subsystem_friendly_name(const char* subsystem_name, char* subsy
|
||||
/* Add a rom to the subsystem rom buffer */
|
||||
void content_add_subsystem(const char* path)
|
||||
{
|
||||
size_t pending_size = PATH_MAX_LENGTH * sizeof(char);
|
||||
pending_subsystem_roms[pending_subsystem_rom_id] = (char*)malloc(pending_size);
|
||||
content_state_t *p_content = (content_state_t*)&content_st;
|
||||
size_t pending_size = PATH_MAX_LENGTH * sizeof(char);
|
||||
p_content->pending_subsystem_roms[p_content->pending_subsystem_rom_id] = (char*)malloc(pending_size);
|
||||
|
||||
strlcpy(pending_subsystem_roms[pending_subsystem_rom_id], path, pending_size);
|
||||
RARCH_LOG("[subsystem] subsystem id: %d subsystem ident: %s rom id: %d, rom path: %s\n",
|
||||
pending_subsystem_id, pending_subsystem_ident, pending_subsystem_rom_id,
|
||||
pending_subsystem_roms[pending_subsystem_rom_id]);
|
||||
pending_subsystem_rom_id++;
|
||||
strlcpy(p_content->pending_subsystem_roms[
|
||||
p_content->pending_subsystem_rom_id],
|
||||
path, pending_size);
|
||||
RARCH_LOG("[subsystem] subsystem id: %d subsystem ident:"
|
||||
" %s rom id: %d, rom path: %s\n",
|
||||
p_content->pending_subsystem_id,
|
||||
p_content->pending_subsystem_ident,
|
||||
p_content->pending_subsystem_rom_id,
|
||||
p_content->pending_subsystem_roms[
|
||||
p_content->pending_subsystem_rom_id]);
|
||||
p_content->pending_subsystem_rom_id++;
|
||||
}
|
||||
|
||||
/* Get the current subsystem rom id */
|
||||
unsigned content_get_subsystem_rom_id(void)
|
||||
{
|
||||
return pending_subsystem_rom_id;
|
||||
content_state_t *p_content = (content_state_t*)&content_st;
|
||||
return p_content->pending_subsystem_rom_id;
|
||||
}
|
||||
|
||||
void content_set_does_not_need_content(void)
|
||||
{
|
||||
core_does_not_need_content = true;
|
||||
content_state_t *p_content = (content_state_t*)&content_st;
|
||||
p_content->core_does_not_need_content = true;
|
||||
}
|
||||
|
||||
void content_unset_does_not_need_content(void)
|
||||
{
|
||||
core_does_not_need_content = false;
|
||||
content_state_t *p_content = (content_state_t*)&content_st;
|
||||
p_content->core_does_not_need_content = false;
|
||||
}
|
||||
|
||||
uint32_t content_get_crc(void)
|
||||
{
|
||||
if (pending_content_rom_crc)
|
||||
content_state_t *p_content = (content_state_t*)&content_st;
|
||||
if (p_content->pending_rom_crc)
|
||||
{
|
||||
pending_content_rom_crc = false;
|
||||
content_rom_crc = file_crc32(0,
|
||||
(const char*)pending_content_rom_crc_path);
|
||||
RARCH_LOG("CRC32: 0x%x .\n", (unsigned)content_rom_crc);
|
||||
p_content->pending_rom_crc = false;
|
||||
p_content->rom_crc = file_crc32(0,
|
||||
(const char*)p_content->pending_rom_crc_path);
|
||||
RARCH_LOG("CRC32: 0x%x .\n", (unsigned)p_content->rom_crc);
|
||||
}
|
||||
return content_rom_crc;
|
||||
return p_content->rom_crc;
|
||||
}
|
||||
|
||||
char* content_get_subsystem_rom(unsigned index)
|
||||
{
|
||||
return pending_subsystem_roms[index];
|
||||
content_state_t *p_content = (content_state_t*)&content_st;
|
||||
return p_content->pending_subsystem_roms[index];
|
||||
}
|
||||
|
||||
bool content_is_inited(void)
|
||||
{
|
||||
return _content_is_inited;
|
||||
content_state_t *p_content = (content_state_t*)&content_st;
|
||||
return p_content->is_inited;
|
||||
}
|
||||
|
||||
void content_deinit(void)
|
||||
{
|
||||
unsigned i;
|
||||
content_state_t *p_content = (content_state_t*)&content_st;
|
||||
|
||||
if (temporary_content)
|
||||
if (p_content->temporary_content)
|
||||
{
|
||||
for (i = 0; i < temporary_content->size; i++)
|
||||
for (i = 0; i < p_content->temporary_content->size; i++)
|
||||
{
|
||||
const char *path = temporary_content->elems[i].data;
|
||||
const char *path = p_content->temporary_content->elems[i].data;
|
||||
|
||||
RARCH_LOG("%s: %s.\n",
|
||||
msg_hash_to_str(MSG_REMOVING_TEMPORARY_CONTENT_FILE), path);
|
||||
@ -2441,24 +2474,26 @@ void content_deinit(void)
|
||||
msg_hash_to_str(MSG_FAILED_TO_REMOVE_TEMPORARY_FILE),
|
||||
path);
|
||||
}
|
||||
string_list_free(temporary_content);
|
||||
string_list_free(p_content->temporary_content);
|
||||
}
|
||||
|
||||
temporary_content = NULL;
|
||||
content_rom_crc = 0;
|
||||
_content_is_inited = false;
|
||||
core_does_not_need_content = false;
|
||||
pending_content_rom_crc = false;
|
||||
p_content->temporary_content = NULL;
|
||||
p_content->rom_crc = 0;
|
||||
p_content->is_inited = false;
|
||||
p_content->core_does_not_need_content = false;
|
||||
p_content->pending_rom_crc = false;
|
||||
}
|
||||
|
||||
/* Set environment variables before a subsystem load */
|
||||
void content_set_subsystem_info(void)
|
||||
{
|
||||
if (!pending_subsystem_init)
|
||||
content_state_t *p_content = (content_state_t*)&content_st;
|
||||
if (!p_content->pending_subsystem_init)
|
||||
return;
|
||||
|
||||
path_set(RARCH_PATH_SUBSYSTEM, pending_subsystem_ident);
|
||||
path_set_special(pending_subsystem_roms, pending_subsystem_rom_num);
|
||||
path_set(RARCH_PATH_SUBSYSTEM, p_content->pending_subsystem_ident);
|
||||
path_set_special(p_content->pending_subsystem_roms,
|
||||
p_content->pending_subsystem_rom_num);
|
||||
}
|
||||
|
||||
/* Initializes and loads a content file for the currently
|
||||
@ -2466,6 +2501,7 @@ void content_set_subsystem_info(void)
|
||||
bool content_init(void)
|
||||
{
|
||||
content_information_ctx_t content_ctx;
|
||||
content_state_t *p_content = (content_state_t*)&content_st;
|
||||
|
||||
bool ret = true;
|
||||
char *error_string = NULL;
|
||||
@ -2478,14 +2514,14 @@ bool content_init(void)
|
||||
const char *path_dir_system = settings->paths.directory_system;
|
||||
const char *path_dir_cache = settings->paths.directory_cache;
|
||||
|
||||
temporary_content = string_list_new();
|
||||
p_content->temporary_content = string_list_new();
|
||||
|
||||
content_ctx.check_firmware_before_loading = check_firmware_before_loading;
|
||||
content_ctx.patch_is_blocked = rarch_ctl(RARCH_CTL_IS_PATCH_BLOCKED, NULL);
|
||||
content_ctx.is_ips_pref = rarch_ctl(RARCH_CTL_IS_IPS_PREF, NULL);
|
||||
content_ctx.is_bps_pref = rarch_ctl(RARCH_CTL_IS_BPS_PREF, NULL);
|
||||
content_ctx.is_ups_pref = rarch_ctl(RARCH_CTL_IS_UPS_PREF, NULL);
|
||||
content_ctx.temporary_content = temporary_content;
|
||||
content_ctx.temporary_content = p_content->temporary_content;
|
||||
content_ctx.directory_system = NULL;
|
||||
content_ctx.directory_cache = NULL;
|
||||
content_ctx.name_ips = NULL;
|
||||
@ -2529,10 +2565,10 @@ bool content_init(void)
|
||||
content_ctx.subsystem.size = sys_info->subsystem.size;
|
||||
}
|
||||
|
||||
_content_is_inited = true;
|
||||
content = string_list_new();
|
||||
p_content->is_inited = true;
|
||||
content = string_list_new();
|
||||
|
||||
if ( !temporary_content
|
||||
if ( !p_content->temporary_content
|
||||
|| !content_file_init(&content_ctx, content, &error_string))
|
||||
{
|
||||
content_deinit();
|
||||
|
Loading…
x
Reference in New Issue
Block a user