diff --git a/runloop_data.c b/runloop_data.c index 8e7fd4759f..b2c965ad83 100644 --- a/runloop_data.c +++ b/runloop_data.c @@ -298,8 +298,7 @@ void rarch_main_data_init_queues(void) #endif rarch_main_data_nbio_init_msg_queue(); #ifdef HAVE_LIBRETRODB - if (!runloop->db.msg_queue) - rarch_assert(runloop->db.msg_queue = msg_queue_new(8)); + rarch_main_data_db_init_msg_queue(); #endif } @@ -341,7 +340,7 @@ void rarch_main_data_msg_queue_push(unsigned type, #endif #ifdef HAVE_LIBRETRODB case DATA_TYPE_DB: - queue = runloop->db.msg_queue; + queue = rarch_main_data_db_get_msg_queue_ptr(); snprintf(new_msg, sizeof(new_msg), "%s|%s", msg, msg2); break; #endif diff --git a/tasks/task_database.c b/tasks/task_database.c index 5c54b61e63..0ec6ceff48 100644 --- a/tasks/task_database.c +++ b/tasks/task_database.c @@ -441,4 +441,29 @@ do_poll: runloop->db.handle->status = DATABASE_STATUS_ITERATE_BEGIN; } } + +void *rarch_main_data_db_get_ptr(void) +{ + data_runloop_t *runloop = rarch_main_data_get_ptr(); + db_handle_t *db = runloop ? &runloop->db : NULL; + if (!db) + return NULL; + return db; +} + +void rarch_main_data_db_init_msg_queue(void) +{ + db_handle_t *db = (db_handle_t*)rarch_main_data_db_get_ptr(); + + if (!db->msg_queue) + rarch_assert(db->msg_queue = msg_queue_new(8)); +} + +msg_queue_t *rarch_main_data_db_get_msg_queue_ptr(void) +{ + db_handle_t *db = (db_handle_t*)rarch_main_data_db_get_ptr(); + if (!db) + return NULL; + return db->msg_queue; +} #endif diff --git a/tasks/task_http.c b/tasks/task_http.c index 253a288d13..f7c906a1fb 100644 --- a/tasks/task_http.c +++ b/tasks/task_http.c @@ -69,7 +69,7 @@ typedef struct http_handle int cb_core_updater_list(void *data_, size_t len); int cb_core_content_list(void *data_, size_t len); -http_handle_t *http_ptr; +static http_handle_t *http_ptr; void *rarch_main_data_http_get_ptr(void) { diff --git a/tasks/tasks.h b/tasks/tasks.h index e2925cfd74..81fb7bc736 100644 --- a/tasks/tasks.h +++ b/tasks/tasks.h @@ -78,6 +78,12 @@ void rarch_main_data_nbio_image_upload_iterate(bool is_thread, #ifdef HAVE_MENU void rarch_main_data_db_iterate(bool is_thread, void *data); #endif + +void rarch_main_data_db_init_msg_queue(void); + +void *rarch_main_data_db_get_ptr(void); + +msg_queue_t *rarch_main_data_db_get_msg_queue_ptr(void); #endif #ifdef HAVE_OVERLAY