diff --git a/content.h b/content.h index 907cfeb2bb..caa641b895 100644 --- a/content.h +++ b/content.h @@ -66,7 +66,7 @@ void content_set_does_not_need_content(void); void content_unset_does_not_need_content(void); -bool content_get_crc(uint32_t **content_crc_ptr); +uint32_t content_get_crc(void); void content_deinit(void); diff --git a/movie.c b/movie.c index b45e440c38..4a5ff86a85 100644 --- a/movie.c +++ b/movie.c @@ -74,7 +74,7 @@ static struct bsv_state bsv_movie_state; static bool bsv_movie_init_playback(bsv_movie_t *handle, const char *path) { uint32_t state_size; - uint32_t *content_crc_ptr = NULL; + uint32_t content_crc = 0; uint32_t header[4] = {0}; RFILE *file = filestream_open(path, RFILE_MODE_READ, -1); @@ -102,10 +102,11 @@ static bool bsv_movie_init_playback(bsv_movie_t *handle, const char *path) return false; } - content_get_crc(&content_crc_ptr); + content_crc = content_get_crc(); - if (swap_if_big32(header[CRC_INDEX]) != *content_crc_ptr) - RARCH_WARN("%s.\n", msg_hash_to_str(MSG_CRC32_CHECKSUM_MISMATCH)); + if (content_crc != 0) + if (swap_if_big32(header[CRC_INDEX]) != content_crc) + RARCH_WARN("%s.\n", msg_hash_to_str(MSG_CRC32_CHECKSUM_MISMATCH)); state_size = swap_if_big32(header[STATE_SIZE_INDEX]); @@ -149,8 +150,8 @@ static bool bsv_movie_init_record(bsv_movie_t *handle, const char *path) { retro_ctx_size_info_t info; uint32_t state_size; + uint32_t content_crc = 0; uint32_t header[4] = {0}; - uint32_t *content_crc_ptr = NULL; RFILE *file = filestream_open(path, RFILE_MODE_WRITE, -1); if (!file) @@ -159,14 +160,14 @@ static bool bsv_movie_init_record(bsv_movie_t *handle, const char *path) return false; } - handle->file = file; + handle->file = file; - content_get_crc(&content_crc_ptr); + content_crc = content_get_crc(); /* This value is supposed to show up as * BSV1 in a HEX editor, big-endian. */ header[MAGIC_INDEX] = swap_if_little32(BSV_MAGIC); - header[CRC_INDEX] = swap_if_big32(*content_crc_ptr); + header[CRC_INDEX] = swap_if_big32(content_crc); core_serialize_size(&info); diff --git a/network/netplay/netplay_discovery.c b/network/netplay/netplay_discovery.c index ab3d222dba..36d720fde4 100644 --- a/network/netplay/netplay_discovery.c +++ b/network/netplay/netplay_discovery.c @@ -237,7 +237,7 @@ bool netplay_lan_ad_server(netplay_t *netplay) (ssize_t) (2*sizeof(uint32_t))) { char s[NETPLAY_HOST_STR_LEN]; - uint32_t *content_crc_ptr = NULL; + uint32_t content_crc = 0; /* Make sure it's a valid query */ if (memcmp((void *) &ad_packet_buffer, "RANQ", 4)) @@ -251,7 +251,7 @@ bool netplay_lan_ad_server(netplay_t *netplay) info = runloop_get_system_info(); /* Now build our response */ - content_get_crc(&content_crc_ptr); + content_crc = content_get_crc(); memset(&ad_packet_buffer, 0, sizeof(struct ad_packet)); memcpy(&ad_packet_buffer, "RANS", 4); @@ -274,7 +274,8 @@ bool netplay_lan_ad_server(netplay_t *netplay) strlcpy(ad_packet_buffer.core_version, info->info.library_version, NETPLAY_HOST_STR_LEN); } - snprintf(s, sizeof(s), "%d", *content_crc_ptr); + + snprintf(s, sizeof(s), "%d", content_crc); strlcpy(ad_packet_buffer.content_crc, s, NETPLAY_HOST_STR_LEN); diff --git a/network/netplay/netplay_frontend.c b/network/netplay/netplay_frontend.c index 67fe8b58c5..2c471f063b 100644 --- a/network/netplay/netplay_frontend.c +++ b/network/netplay/netplay_frontend.c @@ -605,11 +605,9 @@ static void netplay_announce(void) char *corename = NULL; char *gamename = NULL; char *coreversion = NULL; - uint32_t *content_crc_ptr = NULL; settings_t *settings = config_get_ptr(); rarch_system_info_t *system = runloop_get_system_info(); - - content_get_crc(&content_crc_ptr); + uint32_t content_crc = content_get_crc(); net_http_urlencode_full(&username, settings->paths.username); net_http_urlencode_full(&corename, system->info.library_name); @@ -621,7 +619,7 @@ static void netplay_announce(void) snprintf(buf, sizeof(buf), "username=%s&core_name=%s&core_version=%s&" "game_name=%s&game_crc=%08X&port=%d" "&has_password=%d&has_spectate_password=%d&force_mitm=%d", - username, corename, coreversion, gamename, *content_crc_ptr, + username, corename, coreversion, gamename, content_crc, settings->uints.netplay_port, *settings->paths.netplay_password ? 1 : 0, *settings->paths.netplay_spectate_password ? 1 : 0, diff --git a/network/netplay/netplay_handshake.c b/network/netplay/netplay_handshake.c index 0dc4e05281..95464ae402 100644 --- a/network/netplay/netplay_handshake.c +++ b/network/netplay/netplay_handshake.c @@ -471,7 +471,7 @@ static void netplay_handshake_ready(netplay_t *netplay, struct netplay_connectio bool netplay_handshake_info(netplay_t *netplay, struct netplay_connection *connection) { struct info_buf_s info_buf; - uint32_t *content_crc_ptr = NULL; + uint32_t content_crc = 0; rarch_system_info_t *core_info = runloop_get_system_info(); memset(&info_buf, 0, sizeof(info_buf)); @@ -491,10 +491,10 @@ bool netplay_handshake_info(netplay_t *netplay, struct netplay_connection *conne } /* Get our content CRC */ - content_crc_ptr = NULL; - content_get_crc(&content_crc_ptr); - if (content_crc_ptr) - info_buf.content_crc = htonl(*content_crc_ptr); + content_crc = content_get_crc(); + + if (content_crc != 0) + info_buf.content_crc = htonl(content_crc); /* Send it off and wait for info back */ if (!netplay_send(&connection->send_packet_buffer, connection->fd, @@ -766,7 +766,7 @@ bool netplay_handshake_pre_info(netplay_t *netplay, struct info_buf_s info_buf; uint32_t cmd_size; ssize_t recvd; - uint32_t *content_crc_ptr = NULL; + uint32_t content_crc = 0; const char *dmsg = NULL; rarch_system_info_t *core_info = runloop_get_system_info(); @@ -818,11 +818,11 @@ bool netplay_handshake_pre_info(netplay_t *netplay, } /* Check the content CRC */ - content_crc_ptr = NULL; - content_get_crc(&content_crc_ptr); - if (content_crc_ptr) + content_crc = content_get_crc(); + + if (content_crc != 0) { - if (ntohl(info_buf.content_crc) != *content_crc_ptr) + if (ntohl(info_buf.content_crc) != content_crc) { dmsg = msg_hash_to_str(MSG_CONTENT_CRC32S_DIFFER); goto error; diff --git a/tasks/task_content.c b/tasks/task_content.c index 5d0ed9860a..bb24894aa3 100644 --- a/tasks/task_content.c +++ b/tasks/task_content.c @@ -132,7 +132,7 @@ typedef struct content_information_ctx static struct string_list *temporary_content = NULL; static bool _content_is_inited = false; static bool core_does_not_need_content = false; -static uint32_t content_crc = 0; +static uint32_t content_rom_crc = 0; /** * content_file_read: @@ -320,7 +320,6 @@ static bool load_content_into_memory( unsigned i, const char *path, void **buf, ssize_t *length) { - uint32_t *content_crc_ptr = NULL; uint8_t *ret_buf = NULL; RARCH_LOG("%s: %s.\n", @@ -349,11 +348,9 @@ static bool load_content_into_memory( (void*)length); } - content_get_crc(&content_crc_ptr); + content_rom_crc = encoding_crc32(0, ret_buf, *length); - *content_crc_ptr = encoding_crc32(0, ret_buf, *length); - - RARCH_LOG("CRC32: 0x%x .\n", (unsigned)*content_crc_ptr); + RARCH_LOG("CRC32: 0x%x .\n", (unsigned)content_rom_crc); } *buf = ret_buf; @@ -1577,12 +1574,9 @@ void content_unset_does_not_need_content(void) core_does_not_need_content = false; } -bool content_get_crc(uint32_t **content_crc_ptr) +uint32_t content_get_crc(void) { - if (!content_crc_ptr) - return false; - *content_crc_ptr = &content_crc; - return true; + return content_rom_crc; } bool content_is_inited(void) @@ -1611,7 +1605,7 @@ void content_deinit(void) } temporary_content = NULL; - content_crc = 0; + content_rom_crc = 0; _content_is_inited = false; core_does_not_need_content = false; }