From 079cdfa96c84062d2e97a85ac6673b1e46964a09 Mon Sep 17 00:00:00 2001 From: Seth Kingsley Date: Sat, 17 Dec 2016 16:49:38 -0800 Subject: [PATCH 01/16] Move OTHER_CFLAGS up to the project and inherit This is to make adding -DHAVE_... flags easier. --- pkg/apple/RetroArch.xcodeproj/project.pbxproj | 258 ++++++------------ 1 file changed, 91 insertions(+), 167 deletions(-) diff --git a/pkg/apple/RetroArch.xcodeproj/project.pbxproj b/pkg/apple/RetroArch.xcodeproj/project.pbxproj index 8b2546862f..d3785b5d5a 100644 --- a/pkg/apple/RetroArch.xcodeproj/project.pbxproj +++ b/pkg/apple/RetroArch.xcodeproj/project.pbxproj @@ -77,8 +77,8 @@ 089C165DFE840E0CC02AAC07 /* InfoPlist.strings */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = InfoPlist.strings; path = OSX/en.lproj/InfoPlist.strings; sourceTree = ""; }; 1DDD58150DA1D0A300B32029 /* MainMenu.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = MainMenu.xib; path = OSX/en.lproj/MainMenu.xib; sourceTree = ""; }; 29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; - 5008453A1B89300700CE6073 /* RetroArchCg.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "RetroArchCg.app"; sourceTree = BUILT_PRODUCTS_DIR; }; - 5008453B1B89300700CE6073 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "Info.plist"; path = "/../../pkg/apple/OSX/Info.plist"; sourceTree = SOURCE_ROOT; }; + 5008453A1B89300700CE6073 /* RetroArchCg.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = RetroArchCg.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 5008453B1B89300700CE6073 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = /../../pkg/apple/OSX/Info.plist; sourceTree = SOURCE_ROOT; }; 5061C8A31AE47E510080AE14 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; }; 509F0C9C1AA23AFC00619ECC /* griffin_objc.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = griffin_objc.m; path = ../../griffin/griffin_objc.m; sourceTree = ""; }; 840222FB1A889EE2009AB261 /* griffin.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = griffin.c; path = ../../griffin/griffin.c; sourceTree = SOURCE_ROOT; }; @@ -90,7 +90,7 @@ 84DD5EB21A89E6C0007336C1 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = /System/Library/Frameworks/AudioUnit.framework; sourceTree = ""; }; 84DD5EB41A89E737007336C1 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = ../../../../../../System/Library/Frameworks/IOKit.framework; sourceTree = ""; }; 84DD5EB71A89F1C7007336C1 /* retroarch.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = retroarch.icns; path = ../../media/retroarch.icns; sourceTree = ""; }; - 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "Info.plist"; path = "OSX/Info.plist"; sourceTree = ""; }; + 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = OSX/Info.plist; sourceTree = ""; }; 8D1107320486CEB800E47090 /* RetroArch.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = RetroArch.app; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ @@ -378,53 +378,15 @@ "$(SRCROOT)/../../gfx/include", "$(SRCROOT)/../../libretro-common/include", ); - INFOPLIST_FILE = "OSX/Info.plist"; + INFOPLIST_FILE = OSX/Info.plist; INSTALL_PATH = "$(HOME)/Applications"; MACOSX_DEPLOYMENT_TARGET = 10.5; OTHER_CFLAGS = ( - "-DHAVE_GRIFFIN", - "-DHAVE_UPDATE_ASSETS", - "-DHAVE_LANGEXTRA", - "-DHAVE_CHEEVOS", - "-DHAVE_IMAGEVIEWER", - "-DHAVE_CORETEXT", - "-DHAVE_IOHIDMANAGER", - "-DHAVE_RGUI", - "-DHAVE_MENU", - "-DOSX", - "-DHAVE_OPENGL", - "-DHAVE_FBO", - "-DHAVE_CC_RESAMPLER", - "-DHAVE_GLSL", - "-DINLINE=inline", - "-D__LIBRETRO__", - "-DHAVE_COREAUDIO", - "-DHAVE_DYNAMIC", - "-DHAVE_OVERLAY", - "-DHAVE_ZLIB", - "-DHAVE_RPNG", - "-DHAVE_RJPEG", - "-DHAVE_RBMP", - "-DHAVE_RTGA", - "-DHAVE_COCOA", - "-DHAVE_MAIN", - "-DSINC_LOWER_QUALITY", - "-DHAVE_NETWORKGAMEPAD", - "-DHAVE_NETWORKING", - "-DRARCH_INTERNAL", - "-DHAVE_THREADS", - "-DHAVE_DYLIB", + "$(inherited)", "-DHAVE_CG", - "-DHAVE_7ZIP", - "-DHAVE_MATERIALUI", - "-DHAVE_HID", - "-DHAVE_XMB", - "-DHAVE_SHADERPIPELINE", - "-DHAVE_MMAP", - "-DHAVE_LIBRETRODB", ); PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = YES; - PRODUCT_NAME = "RetroArchCg"; + PRODUCT_NAME = RetroArchCg; }; name = Debug; }; @@ -445,53 +407,15 @@ "$(SRCROOT)/../../gfx/include", "$(SRCROOT)/../../libretro-common/include", ); - INFOPLIST_FILE = "OSX/Info.plist"; + INFOPLIST_FILE = OSX/Info.plist; INSTALL_PATH = "$(HOME)/Applications"; MACOSX_DEPLOYMENT_TARGET = 10.5; OTHER_CFLAGS = ( - "-DHAVE_GRIFFIN", - "-DHAVE_UPDATE_ASSETS", - "-DHAVE_LANGEXTRA", - "-DHAVE_CHEEVOS", - "-DHAVE_IMAGEVIEWER", - "-DHAVE_IOHIDMANAGER", - "-DHAVE_CORETEXT", - "-DHAVE_RGUI", - "-DHAVE_MENU", - "-DOSX", - "-DHAVE_OPENGL", - "-DHAVE_FBO", - "-DHAVE_CC_RESAMPLER", - "-DHAVE_GLSL", - "-DINLINE=inline", - "-D__LIBRETRO__", - "-DHAVE_COREAUDIO", - "-DHAVE_DYNAMIC", - "-DHAVE_OVERLAY", - "-DHAVE_ZLIB", - "-DHAVE_RPNG", - "-DHAVE_RJPEG", - "-DHAVE_RBMP", - "-DHAVE_RTGA", - "-DHAVE_COCOA", - "-DHAVE_MAIN", - "-DSINC_LOWER_QUALITY", - "-DHAVE_NETWORKGAMEPAD", - "-DHAVE_NETWORKING", - "-DRARCH_INTERNAL", - "-DHAVE_THREADS", - "-DHAVE_DYLIB", + "$(inherited)", "-DHAVE_CG", - "-DHAVE_7ZIP", - "-DHAVE_MATERIALUI", - "-DHAVE_HID", - "-DHAVE_XMB", - "-DHAVE_SHADERPIPELINE", - "-DHAVE_MMAP", - "-DHAVE_LIBRETRODB", ); PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = YES; - PRODUCT_NAME = "RetroArchCg"; + PRODUCT_NAME = RetroArchCg; }; name = Release; }; @@ -517,47 +441,6 @@ INFOPLIST_FILE = "$(SRCROOT)/OSX/Info.plist"; INSTALL_PATH = "$(HOME)/Applications"; MACOSX_DEPLOYMENT_TARGET = 10.5; - OTHER_CFLAGS = ( - "-DHAVE_GRIFFIN", - "-DHAVE_UPDATE_ASSETS", - "-DHAVE_LANGEXTRA", - "-DHAVE_CHEEVOS", - "-DHAVE_IMAGEVIEWER", - "-DHAVE_CORETEXT", - "-DHAVE_IOHIDMANAGER", - "-DHAVE_RGUI", - "-DHAVE_MENU", - "-DOSX", - "-DHAVE_OPENGL", - "-DHAVE_FBO", - "-DHAVE_CC_RESAMPLER", - "-DHAVE_GLSL", - "-DINLINE=inline", - "-D__LIBRETRO__", - "-DHAVE_COREAUDIO", - "-DHAVE_DYNAMIC", - "-DHAVE_OVERLAY", - "-DHAVE_ZLIB", - "-DHAVE_RPNG", - "-DHAVE_RJPEG", - "-DHAVE_RBMP", - "-DHAVE_RTGA", - "-DHAVE_COCOA", - "-DHAVE_MAIN", - "-DSINC_LOWER_QUALITY", - "-DHAVE_NETWORKGAMEPAD", - "-DHAVE_NETWORKING", - "-DRARCH_INTERNAL", - "-DHAVE_THREADS", - "-DHAVE_DYLIB", - "-DHAVE_7ZIP", - "-DHAVE_MATERIALUI", - "-DHAVE_HID", - "-DHAVE_XMB", - "-DHAVE_SHADERPIPELINE", - "-DHAVE_MMAP", - "-DHAVE_LIBRETRODB", - ); PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = YES; PRODUCT_NAME = RetroArch; }; @@ -583,47 +466,6 @@ INFOPLIST_FILE = "$(SRCROOT)/OSX/Info.plist"; INSTALL_PATH = "$(HOME)/Applications"; MACOSX_DEPLOYMENT_TARGET = 10.5; - OTHER_CFLAGS = ( - "-DHAVE_GRIFFIN", - "-DHAVE_UPDATE_ASSETS", - "-DHAVE_LANGEXTRA", - "-DHAVE_CHEEVOS", - "-DHAVE_IMAGEVIEWER", - "-DHAVE_IOHIDMANAGER", - "-DHAVE_CORETEXT", - "-DHAVE_RGUI", - "-DHAVE_MENU", - "-DOSX", - "-DHAVE_OPENGL", - "-DHAVE_FBO", - "-DHAVE_CC_RESAMPLER", - "-DHAVE_GLSL", - "-DINLINE=inline", - "-D__LIBRETRO__", - "-DHAVE_COREAUDIO", - "-DHAVE_DYNAMIC", - "-DHAVE_OVERLAY", - "-DHAVE_ZLIB", - "-DHAVE_RPNG", - "-DHAVE_RJPEG", - "-DHAVE_RBMP", - "-DHAVE_RTGA", - "-DHAVE_COCOA", - "-DHAVE_MAIN", - "-DSINC_LOWER_QUALITY", - "-DHAVE_NETWORKGAMEPAD", - "-DHAVE_NETWORKING", - "-DRARCH_INTERNAL", - "-DHAVE_THREADS", - "-DHAVE_DYLIB", - "-DHAVE_7ZIP", - "-DHAVE_MATERIALUI", - "-DHAVE_HID", - "-DHAVE_XMB", - "-DHAVE_SHADERPIPELINE", - "-DHAVE_MMAP", - "-DHAVE_LIBRETRODB", - ); PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = YES; PRODUCT_NAME = RetroArch; }; @@ -638,6 +480,47 @@ GCC_WARN_UNUSED_VARIABLE = YES; MACOSX_DEPLOYMENT_TARGET = 10.5; ONLY_ACTIVE_ARCH = NO; + OTHER_CFLAGS = ( + "-DHAVE_GRIFFIN", + "-DHAVE_UPDATE_ASSETS", + "-DHAVE_LANGEXTRA", + "-DHAVE_CHEEVOS", + "-DHAVE_IMAGEVIEWER", + "-DHAVE_IOHIDMANAGER", + "-DHAVE_CORETEXT", + "-DHAVE_RGUI", + "-DHAVE_MENU", + "-DOSX", + "-DHAVE_OPENGL", + "-DHAVE_FBO", + "-DHAVE_CC_RESAMPLER", + "-DHAVE_GLSL", + "-DINLINE=inline", + "-D__LIBRETRO__", + "-DHAVE_COREAUDIO", + "-DHAVE_DYNAMIC", + "-DHAVE_OVERLAY", + "-DHAVE_ZLIB", + "-DHAVE_RPNG", + "-DHAVE_RJPEG", + "-DHAVE_RBMP", + "-DHAVE_RTGA", + "-DHAVE_COCOA", + "-DHAVE_MAIN", + "-DSINC_LOWER_QUALITY", + "-DHAVE_NETWORKGAMEPAD", + "-DHAVE_NETWORKING", + "-DRARCH_INTERNAL", + "-DHAVE_THREADS", + "-DHAVE_DYLIB", + "-DHAVE_7ZIP", + "-DHAVE_MATERIALUI", + "-DHAVE_HID", + "-DHAVE_XMB", + "-DHAVE_SHADERPIPELINE", + "-DHAVE_MMAP", + "-DHAVE_LIBRETRODB", + ); PREBINDING = NO; SDKROOT = macosx; }; @@ -650,6 +533,47 @@ GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; MACOSX_DEPLOYMENT_TARGET = 10.5; + OTHER_CFLAGS = ( + "-DHAVE_GRIFFIN", + "-DHAVE_UPDATE_ASSETS", + "-DHAVE_LANGEXTRA", + "-DHAVE_CHEEVOS", + "-DHAVE_IMAGEVIEWER", + "-DHAVE_IOHIDMANAGER", + "-DHAVE_CORETEXT", + "-DHAVE_RGUI", + "-DHAVE_MENU", + "-DOSX", + "-DHAVE_OPENGL", + "-DHAVE_FBO", + "-DHAVE_CC_RESAMPLER", + "-DHAVE_GLSL", + "-DINLINE=inline", + "-D__LIBRETRO__", + "-DHAVE_COREAUDIO", + "-DHAVE_DYNAMIC", + "-DHAVE_OVERLAY", + "-DHAVE_ZLIB", + "-DHAVE_RPNG", + "-DHAVE_RJPEG", + "-DHAVE_RBMP", + "-DHAVE_RTGA", + "-DHAVE_COCOA", + "-DHAVE_MAIN", + "-DSINC_LOWER_QUALITY", + "-DHAVE_NETWORKGAMEPAD", + "-DHAVE_NETWORKING", + "-DRARCH_INTERNAL", + "-DHAVE_THREADS", + "-DHAVE_DYLIB", + "-DHAVE_7ZIP", + "-DHAVE_MATERIALUI", + "-DHAVE_HID", + "-DHAVE_XMB", + "-DHAVE_SHADERPIPELINE", + "-DHAVE_MMAP", + "-DHAVE_LIBRETRODB", + ); PREBINDING = NO; SDKROOT = macosx; }; From b1c6317ba5bb8cfa2938fd46174ea32ea72cb4bb Mon Sep 17 00:00:00 2001 From: Seth Kingsley Date: Sat, 17 Dec 2016 16:54:31 -0800 Subject: [PATCH 02/16] Return non-zero from rarch_main() on failure All platforms that test this check for != 0 --- frontend/frontend.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/frontend.c b/frontend/frontend.c index 19d229935b..7c00d6c71a 100644 --- a/frontend/frontend.c +++ b/frontend/frontend.c @@ -118,7 +118,7 @@ int rarch_main(int argc, char *argv[], void *data) CONTENT_MODE_LOAD_FROM_CLI, NULL, NULL)) - return 0; + return 1; } ui_companion_driver_init_first(); From b690fb2abc85f5820ffbd828e939a097bb1b7913 Mon Sep 17 00:00:00 2001 From: Seth Kingsley Date: Sat, 17 Dec 2016 16:56:40 -0800 Subject: [PATCH 03/16] Use native getopt_long() on macOS --- pkg/apple/RetroArch.xcodeproj/project.pbxproj | 2 ++ retroarch.c | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/pkg/apple/RetroArch.xcodeproj/project.pbxproj b/pkg/apple/RetroArch.xcodeproj/project.pbxproj index d3785b5d5a..b09687894a 100644 --- a/pkg/apple/RetroArch.xcodeproj/project.pbxproj +++ b/pkg/apple/RetroArch.xcodeproj/project.pbxproj @@ -520,6 +520,7 @@ "-DHAVE_SHADERPIPELINE", "-DHAVE_MMAP", "-DHAVE_LIBRETRODB", + "-DHAVE_GETOPT_LONG", ); PREBINDING = NO; SDKROOT = macosx; @@ -573,6 +574,7 @@ "-DHAVE_SHADERPIPELINE", "-DHAVE_MMAP", "-DHAVE_LIBRETRODB", + "-DHAVE_GETOPT_LONG", ); PREBINDING = NO; SDKROOT = macosx; diff --git a/retroarch.c b/retroarch.c index af54841baa..0670ade574 100644 --- a/retroarch.c +++ b/retroarch.c @@ -511,7 +511,7 @@ static void retroarch_parse_input(int argc, char *argv[]) int c = getopt_long(argc, argv, optstring, opts, NULL); #if 0 - RARCH_LOG("c is: %c, optarg is: [%s]\n", c, string_is_empty(optarg) ? "" : optarg); + fprintf(stderr, "c is: %c (%d), optarg is: [%s]\n", c, c, string_is_empty(optarg) ? "" : optarg); #endif if (c == -1) From d79cdffe37da140793e36a49f16010a1afbae482 Mon Sep 17 00:00:00 2001 From: Seth Kingsley Date: Sat, 17 Dec 2016 21:06:07 -0800 Subject: [PATCH 04/16] Don't set config path until open_default_config_file() This allows overriding of the config with --config --- configuration.c | 2 ++ frontend/drivers/platform_darwin.m | 5 ----- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/configuration.c b/configuration.c index 0f6ee0a82c..b44e5e27f7 100644 --- a/configuration.c +++ b/configuration.c @@ -1422,6 +1422,8 @@ static config_file_t *open_default_config_file(void) if (!fill_pathname_application_data(application_data, sizeof(application_data))) return NULL; + // Group config file with menu configs, remaps, etc: + strlcat(application_data, "/config", sizeof(application_data)); path_mkdir(application_data); diff --git a/frontend/drivers/platform_darwin.m b/frontend/drivers/platform_darwin.m index 88f1d2bedd..02b5476c99 100644 --- a/frontend/drivers/platform_darwin.m +++ b/frontend/drivers/platform_darwin.m @@ -352,8 +352,6 @@ static void frontend_darwin_get_environment_settings(int *argc, char *argv[], fill_pathname_join(g_defaults.dir.assets, home_dir_buf, "assets", sizeof(g_defaults.dir.assets)); fill_pathname_join(g_defaults.dir.system, home_dir_buf, "system", sizeof(g_defaults.dir.system)); fill_pathname_join(g_defaults.dir.menu_config, home_dir_buf, "config", sizeof(g_defaults.dir.menu_config)); - fill_pathname_join(g_defaults.path.config, g_defaults.dir.menu_config, - file_path_str(FILE_PATH_MAIN_CONFIG), sizeof(g_defaults.path.config)); fill_pathname_join(g_defaults.dir.remap, g_defaults.dir.menu_config, "remaps", sizeof(g_defaults.dir.remap)); fill_pathname_join(g_defaults.dir.database, home_dir_buf, "database/rdb", sizeof(g_defaults.dir.database)); fill_pathname_join(g_defaults.dir.cursor, home_dir_buf, "database/cursors", sizeof(g_defaults.dir.cursor)); @@ -361,7 +359,6 @@ static void frontend_darwin_get_environment_settings(int *argc, char *argv[], fill_pathname_join(g_defaults.dir.thumbnails, home_dir_buf, "thumbnails", sizeof(g_defaults.dir.thumbnails)); fill_pathname_join(g_defaults.dir.sram, home_dir_buf, "saves", sizeof(g_defaults.dir.sram)); fill_pathname_join(g_defaults.dir.savestate, home_dir_buf, "states", sizeof(g_defaults.dir.savestate)); - fill_pathname_join(g_defaults.dir.menu_config, home_dir_buf, "config", sizeof(g_defaults.dir.menu_config)); #if defined(IOS) fill_pathname_join(g_defaults.dir.playlist, home_dir_buf, "playlists", sizeof(g_defaults.dir.playlist)); #endif @@ -378,8 +375,6 @@ static void frontend_darwin_get_environment_settings(int *argc, char *argv[], fill_pathname_join(g_defaults.dir.playlist, application_data, "playlists", sizeof(g_defaults.dir.playlist)); fill_pathname_join(g_defaults.dir.thumbnails, application_data, "thumbnails", sizeof(g_defaults.dir.thumbnails)); fill_pathname_join(g_defaults.dir.menu_config, application_data, "config", sizeof(g_defaults.dir.menu_config)); - fill_pathname_join(g_defaults.path.config, g_defaults.dir.menu_config, - file_path_str(FILE_PATH_MAIN_CONFIG), sizeof(g_defaults.path.config)); fill_pathname_join(g_defaults.dir.remap, g_defaults.dir.menu_config, "remaps", sizeof(g_defaults.dir.remap)); fill_pathname_join(g_defaults.dir.core_assets, application_data, "downloads", sizeof(g_defaults.dir.core_assets)); fill_pathname_join(g_defaults.dir.screenshot, application_data, "screenshots", sizeof(g_defaults.dir.screenshot)); From fc1c83d8c03d0ef976607527e84c0958407df515 Mon Sep 17 00:00:00 2001 From: Alcaro Date: Mon, 19 Dec 2016 16:38:55 +0100 Subject: [PATCH 05/16] Shut up false positive warning --- network/netplay/netplay_frontend.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/network/netplay/netplay_frontend.c b/network/netplay/netplay_frontend.c index 854d0db73f..822c527305 100644 --- a/network/netplay/netplay_frontend.c +++ b/network/netplay/netplay_frontend.c @@ -763,7 +763,7 @@ static void netplay_toggle_play_spectate(netplay_t *netplay) /* FIXME: Duplication */ uint32_t payload[2]; char msg[512]; - const char *dmsg; + const char *dmsg = NULL; payload[0] = htonl(netplay->self_frame_count); if (netplay->self_mode == NETPLAY_CONNECTION_PLAYING) { From 3561949a87a47a6f1d19d4bcead29ea337c509f3 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Mon, 19 Dec 2016 18:18:40 +0100 Subject: [PATCH 06/16] Get rid of some implicit memsets --- libretro-common/file/archive_file.c | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/libretro-common/file/archive_file.c b/libretro-common/file/archive_file.c index cad1592232..247de63062 100644 --- a/libretro-common/file/archive_file.c +++ b/libretro-common/file/archive_file.c @@ -598,18 +598,34 @@ struct string_list *file_archive_get_file_list(const char *path, const char *valid_exts) { int ret; - struct archive_extract_userdata userdata = {{0}}; + struct archive_extract_userdata userdata; - userdata.list_only = true; strlcpy(userdata.archive_path, path, sizeof(userdata.archive_path)); + userdata.first_extracted_file_path = NULL; + userdata.extracted_file_path = NULL; + userdata.extraction_directory = NULL; + userdata.archive_path_size = 0; + userdata.ext = NULL; + userdata.list = string_list_new(); + userdata.found_file = false; + userdata.list_only = true; + userdata.context = NULL; + userdata.archive_name[0] = '\0'; + userdata.crc = 0; + userdata.dec = NULL; - userdata.list = string_list_new(); + userdata.decomp_state.opt_file = NULL; + userdata.decomp_state.needle = NULL; + userdata.decomp_state.size = 0; + userdata.decomp_state.found = NULL; if (!userdata.list) goto error; - if ((ret = file_archive_walk(path, valid_exts, - file_archive_get_file_list_cb, &userdata)) <= 0) + ret = file_archive_walk(path, valid_exts, + file_archive_get_file_list_cb, &userdata); + + if (ret <= 0) { if (ret != -1) goto error; From 845389377819972ca2e6fefeb0c051053195f910 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Mon, 19 Dec 2016 18:30:17 +0100 Subject: [PATCH 07/16] Get rid of some implicit memsets --- menu/menu_displaylist.c | 2 +- menu/menu_setting.c | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index e056ff6a32..3cb39c02b2 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -3529,7 +3529,7 @@ static void menu_displaylist_parse_playlist_associations( { char path_base[PATH_MAX_LENGTH]; char core_path[PATH_MAX_LENGTH]; - unsigned found = 0; + unsigned found = 0; union string_list_elem_attr attr = {0}; const char *path = path_basename(str_list->elems[i].data); diff --git a/menu/menu_setting.c b/menu/menu_setting.c index 01c874b680..a3bed79e69 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -1895,7 +1895,7 @@ static bool setting_append_list_input_player_options( parent_group); { - char tmp_string[PATH_MAX_LENGTH] = {0}; + char tmp_string[PATH_MAX_LENGTH]; /* These constants match the string lengths. * Keep them up to date or you'll get some really obvious bugs. * 2 is the length of '99'; we don't need more users than that. @@ -1915,6 +1915,8 @@ static bool setting_append_list_input_player_options( static char label_bind_all_save_autoconfig[MAX_USERS][64]; static char label_bind_defaults[MAX_USERS][64]; + tmp_string[0] = '\0'; + snprintf(tmp_string, sizeof(tmp_string), "input_player%u", user + 1); fill_pathname_join_delim(key[user], tmp_string, "joypad_index", '_', From 3cdb62b361d65710cd39bbeace573ddcd55b974d Mon Sep 17 00:00:00 2001 From: twinaphex Date: Mon, 19 Dec 2016 18:40:00 +0100 Subject: [PATCH 08/16] Get rid of implicit memsets --- menu/drivers/xmb.c | 51 ++++++++++++++++++++++++++--------------- menu/menu_displaylist.c | 21 ++++++++++------- menu/menu_setting.c | 13 ++++++----- 3 files changed, 52 insertions(+), 33 deletions(-) diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index 8371af95d7..3ff0ad0d3b 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -1576,31 +1576,37 @@ static void xmb_context_destroy_horizontal_list(xmb_handle_t *xmb) static void xmb_init_horizontal_list(xmb_handle_t *xmb) { - size_t i; - menu_displaylist_info_t info = {0}; + menu_displaylist_info_t info; settings_t *settings = config_get_ptr(); - xmb->horizontal_list = (file_list_t*)calloc(1, sizeof(file_list_t)); - - if (!xmb->horizontal_list) - return; - - info.list = xmb->horizontal_list; - info.menu_list = NULL; - info.type = 0; - info.flags = 0; - info.type_default = FILE_TYPE_PLAIN; - info.enum_idx = MENU_ENUM_LABEL_CONTENT_COLLECTION_LIST; + info.need_sort = false; + info.need_refresh = false; + info.need_entries_refresh = false; + info.need_push = false; + info.push_builtin_cores = false; + info.download_core = false; + info.need_navigation_clear = false; + info.list = xmb->horizontal_list; + info.menu_list = NULL; + strlcpy(info.path, settings->directory.playlist, sizeof(info.path)); + info.path_b[0] = '\0'; + info.path_c[0] = '\0'; strlcpy(info.label, msg_hash_to_str(MENU_ENUM_LABEL_CONTENT_COLLECTION_LIST), sizeof(info.label)); - strlcpy(info.path, - settings->directory.playlist, - sizeof(info.path)); - strlcpy(info.exts, file_path_str(FILE_PATH_LPL_EXTENSION_NO_DOT), sizeof(info.exts)); + info.label_hash = 0; + strlcpy(info.exts, + file_path_str(FILE_PATH_LPL_EXTENSION_NO_DOT), sizeof(info.exts)); + info.type = 0; + info.type_default = FILE_TYPE_PLAIN; + info.directory_ptr = 0; + info.flags = 0; + info.enum_idx = MENU_ENUM_LABEL_CONTENT_COLLECTION_LIST; + info.setting = NULL; if (menu_displaylist_ctl(DISPLAYLIST_DATABASE_PLAYLISTS_HORIZONTAL, &info)) { + size_t i; for (i=0; i < xmb->horizontal_list->size; i++) xmb_node_allocate_userdata(xmb, i); menu_displaylist_ctl(DISPLAYLIST_PROCESS, &info); @@ -1737,7 +1743,11 @@ static void xmb_refresh_horizontal_list(xmb_handle_t *xmb) menu_driver_ctl(RARCH_MENU_CTL_SET_PREVENT_POPULATE, NULL); - xmb_init_horizontal_list(xmb); + xmb->horizontal_list = (file_list_t*)calloc(1, sizeof(file_list_t)); + + if (xmb->horizontal_list) + xmb_init_horizontal_list(xmb); + xmb_context_reset_horizontal_list(xmb); } @@ -3101,7 +3111,10 @@ static void *xmb_init(void **userdata) menu_display_allocate_white_texture(); - xmb_init_horizontal_list(xmb); + xmb->horizontal_list = (file_list_t*)calloc(1, sizeof(file_list_t)); + + if (xmb->horizontal_list) + xmb_init_horizontal_list(xmb); xmb_init_ribbon(xmb); diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 3cb39c02b2..de495a20f5 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -1583,7 +1583,7 @@ static int create_string_list_rdb_entry_string( file_list_t *list) { char tmp[PATH_MAX_LENGTH]; - union string_list_elem_attr attr = {0}; + union string_list_elem_attr attr; char *output_label = NULL; int str_len = 0; struct string_list *str_list = string_list_new(); @@ -1591,6 +1591,7 @@ static int create_string_list_rdb_entry_string( if (!str_list) return -1; + attr.i = 0; tmp[0] = '\0'; str_len += strlen(label) + 1; @@ -1633,7 +1634,7 @@ static int create_string_list_rdb_entry_int( { char tmp[PATH_MAX_LENGTH]; char str[PATH_MAX_LENGTH]; - union string_list_elem_attr attr = {0}; + union string_list_elem_attr attr; char *output_label = NULL; int str_len = 0; struct string_list *str_list = string_list_new(); @@ -1641,6 +1642,7 @@ static int create_string_list_rdb_entry_int( if (!str_list) return -1; + attr.i = 0; tmp[0] = str[0] = '\0'; str_len += strlen(label) + 1; @@ -3529,11 +3531,12 @@ static void menu_displaylist_parse_playlist_associations( { char path_base[PATH_MAX_LENGTH]; char core_path[PATH_MAX_LENGTH]; + union string_list_elem_attr attr; unsigned found = 0; - union string_list_elem_attr attr = {0}; const char *path = path_basename(str_list->elems[i].data); + attr.i = 0; path_base[0] = core_path[0] = '\0'; if (!menu_content_playlist_find_associated_core( @@ -6049,10 +6052,10 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) break; case DISPLAYLIST_SHADER_PRESET: { - union string_list_elem_attr attr = {0}; + union string_list_elem_attr attr; struct string_list *str_list = string_list_new(); - (void)attr; + attr.i = 0; filebrowser_clear_type(); info->type_default = FILE_TYPE_SHADER_PRESET; @@ -6072,13 +6075,13 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) break; case DISPLAYLIST_SHADER_PASS: { - union string_list_elem_attr attr = {0}; + union string_list_elem_attr attr; struct string_list *str_list = string_list_new(); filebrowser_clear_type(); info->type_default = FILE_TYPE_SHADER; - (void)attr; + attr.i = 0; #ifdef HAVE_CG string_list_append(str_list, "cg", attr); @@ -6102,9 +6105,11 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) filebrowser_clear_type(); info->type_default = FILE_TYPE_IMAGE; { - union string_list_elem_attr attr = {0}; + union string_list_elem_attr attr; struct string_list *str_list = string_list_new(); + attr.i = 0; + #ifdef HAVE_RBMP string_list_append(str_list, "bmp", attr); #endif diff --git a/menu/menu_setting.c b/menu/menu_setting.c index a3bed79e69..3820cd29d0 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -1595,6 +1595,7 @@ void general_write_handler(void *data) if (*setting->value.target.boolean) { menu_displaylist_info_t info = {0}; + info.list = menu_stack; info.type = 0; info.directory_ptr = 0; @@ -1865,13 +1866,13 @@ static bool setting_append_list_input_player_options( static char buffer[MAX_USERS][13+2+1]; static char group_lbl[MAX_USERS][255]; unsigned i; - rarch_setting_group_info_t group_info = {0}; - rarch_setting_group_info_t subgroup_info = {0}; - settings_t *settings = config_get_ptr(); + rarch_setting_group_info_t group_info = {0}; + rarch_setting_group_info_t subgroup_info = {0}; + settings_t *settings = config_get_ptr(); + rarch_system_info_t *system = NULL; const char *temp_value = NULL; const struct retro_keybind* const defaults = (user == 0) ? retro_keybinds_1 : retro_keybinds_rest; - rarch_system_info_t *system = NULL; runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &system); @@ -2129,8 +2130,8 @@ static bool setting_append_list( unsigned user; rarch_setting_group_info_t group_info = {0}; rarch_setting_group_info_t subgroup_info = {0}; - settings_t *settings = config_get_ptr(); - global_t *global = global_get_ptr(); + settings_t *settings = config_get_ptr(); + global_t *global = global_get_ptr(); (void)settings; (void)global; From 4c33f948e0a5b067c5c9eb781e1ab6e4646c3460 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Mon, 19 Dec 2016 18:49:56 +0100 Subject: [PATCH 09/16] (menu_display_gl.c) Get rid of implicit memset --- menu/drivers_display/menu_display_gl.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/menu/drivers_display/menu_display_gl.c b/menu/drivers_display/menu_display_gl.c index f1d056862d..0fe69d0ef3 100644 --- a/menu/drivers_display/menu_display_gl.c +++ b/menu/drivers_display/menu_display_gl.c @@ -174,7 +174,7 @@ static void menu_display_gl_draw_pipeline(void *data) { static float t = 0; video_shader_ctx_info_t shader_info; - struct uniform_info uniform_param = {0}; + struct uniform_info uniform_param; shader_info.data = NULL; shader_info.idx = draw->pipeline.id; @@ -184,13 +184,17 @@ static void menu_display_gl_draw_pipeline(void *data) t += 0.01; - uniform_param.enabled = true; - uniform_param.lookup.enable = true; - uniform_param.lookup.add_prefix = true; - uniform_param.lookup.idx = draw->pipeline.id; - uniform_param.lookup.type = SHADER_PROGRAM_VERTEX; uniform_param.type = UNIFORM_1F; + uniform_param.enabled = true; + uniform_param.location = 0; + uniform_param.count = 0; + + uniform_param.lookup.type = SHADER_PROGRAM_VERTEX; uniform_param.lookup.ident = "time"; + uniform_param.lookup.idx = draw->pipeline.id; + uniform_param.lookup.add_prefix = true; + uniform_param.lookup.enable = true; + uniform_param.result.f.v0 = t; video_shader_driver_set_parameter(uniform_param); From 8dcf05036ce0f1f83ec5d73c84979fc1721e2216 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Mon, 19 Dec 2016 18:55:02 +0100 Subject: [PATCH 10/16] (input_config.c) Get rid of implicit memset --- input/input_config.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/input/input_config.c b/input/input_config.c index a978d0af36..f28ef6fe87 100644 --- a/input/input_config.c +++ b/input/input_config.c @@ -299,11 +299,11 @@ void input_config_parse_joy_button(void *data, const char *prefix, char str[256]; char tmp[64]; char key[64]; - char key_label[64] = {0}; + char key_label[64]; char *tmp_a = NULL; config_file_t *conf = (config_file_t*)data; - str[0] = tmp[0] = key[0] = '\0'; + str[0] = tmp[0] = key[0] = key_label[0] = '\0'; fill_pathname_join_delim(str, prefix, btn, '_', sizeof(str)); From 3c7c667cf5727f947368e349f5455fbdc2c1b125 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Mon, 19 Dec 2016 19:04:52 +0100 Subject: [PATCH 11/16] Get rid of some implicit memsets --- dynamic.c | 4 +++- frontend/drivers/platform_linux.c | 16 ++++++++++++---- tasks/task_overlay.c | 5 +++-- tasks/task_screenshot.c | 9 ++++++++- 4 files changed, 26 insertions(+), 8 deletions(-) diff --git a/dynamic.c b/dynamic.c index 084193dea1..fccd1fab31 100644 --- a/dynamic.c +++ b/dynamic.c @@ -1050,7 +1050,9 @@ bool rarch_environment_cb(unsigned cmd, void *data) const char *fullpath = path_get(RARCH_PATH_CONTENT); if (!string_is_empty(fullpath)) { - char temp_path[PATH_MAX_LENGTH] = {0}; + char temp_path[PATH_MAX_LENGTH]; + + temp_path[0] = '\0'; RARCH_WARN("SYSTEM DIR is empty, assume CONTENT DIR %s\n", fullpath); diff --git a/frontend/drivers/platform_linux.c b/frontend/drivers/platform_linux.c index 42c00f023b..a7edcdca67 100644 --- a/frontend/drivers/platform_linux.c +++ b/frontend/drivers/platform_linux.c @@ -636,7 +636,7 @@ static void check_proc_acpi_battery(const char * node, bool * have_battery, bool * charging, int *seconds, int *percent) { const char *base = proc_acpi_battery_path; - char path[1024] = {0}; + char path[1024]; ssize_t length = 0; char *ptr = NULL; char *buf = NULL; @@ -650,6 +650,8 @@ static void check_proc_acpi_battery(const char * node, bool * have_battery, int secs = -1; int pct = -1; + path[0] = '\0'; + snprintf(path, sizeof(path), "%s/%s/%s", base, node, "state"); if (!path_file_exists(path)) @@ -762,7 +764,7 @@ static void check_proc_acpi_sysfs_battery(const char *node, int *seconds, int *percent) { unsigned capacity; - char path[1024] = {0}; + char path[1024]; const char *base = proc_acpi_sysfs_battery_path; char *buf = NULL; char *ptr = NULL; @@ -779,6 +781,8 @@ static void check_proc_acpi_sysfs_battery(const char *node, if (!strstr(node, "BAT")) return; + path[0] = '\0'; + snprintf(path, sizeof(path), "%s/%s/%s", base, node, "status"); if (!path_file_exists(path)) return; @@ -806,7 +810,7 @@ end: static void check_proc_acpi_ac_adapter(const char * node, bool *have_ac) { - char path[1024] = {0}; + char path[1024]; const char *base = proc_acpi_ac_adapter_path; char *buf = NULL; char *ptr = NULL; @@ -814,6 +818,8 @@ static void check_proc_acpi_ac_adapter(const char * node, bool *have_ac) char *val = NULL; ssize_t length = 0; + path[0] = '\0'; + snprintf(path, sizeof(path), "%s/%s/%s", base, node, "state"); if (!path_file_exists(path)) return; @@ -838,11 +844,13 @@ static void check_proc_acpi_ac_adapter(const char * node, bool *have_ac) static void check_proc_acpi_sysfs_ac_adapter(const char * node, bool *have_ac) { - char path[1024] = {0}; + char path[1024]; ssize_t length = 0; char *buf = NULL; const char *base = proc_acpi_sysfs_ac_adapter_path; + path[0] = '\0'; + snprintf(path, sizeof(path), "%s/%s", base, "online"); if (!path_file_exists(path)) return; diff --git a/tasks/task_overlay.c b/tasks/task_overlay.c index ed3fb2998c..dfc8704ef8 100644 --- a/tasks/task_overlay.c +++ b/tasks/task_overlay.c @@ -32,7 +32,8 @@ #include "../configuration.h" #include "../verbosity.h" -typedef struct { +typedef struct +{ enum overlay_status state; enum overlay_image_transfer_status loading_status; config_file_t *conf; @@ -48,7 +49,7 @@ typedef struct { static void task_overlay_image_done(struct overlay *overlay) { - overlay->pos = 0; + overlay->pos = 0; /* Divide iteration steps by half of total descs if size is even, * otherwise default to 8 (arbitrary value for now to speed things up). */ overlay->pos_increment = (overlay->size / 2) ? (overlay->size / 2) : 8; diff --git a/tasks/task_screenshot.c b/tasks/task_screenshot.c index d80479cac2..0f755cdb70 100644 --- a/tasks/task_screenshot.c +++ b/tasks/task_screenshot.c @@ -239,14 +239,21 @@ static bool screenshot_dump( static bool take_screenshot_viewport(const char *name_base, bool savestate) { char screenshot_path[PATH_MAX_LENGTH]; + struct video_viewport vp; const char *screenshot_dir = NULL; uint8_t *buffer = NULL; bool retval = false; - struct video_viewport vp = {0}; settings_t *settings = config_get_ptr(); screenshot_path[0] = '\0'; + vp.x = 0; + vp.y = 0; + vp.width = 0; + vp.height = 0; + vp.full_width = 0; + vp.full_height = 0; + video_driver_get_viewport_info(&vp); if (!vp.width || !vp.height) From 31b87594aad532e5012e7d8518a1df969038f29a Mon Sep 17 00:00:00 2001 From: twinaphex Date: Mon, 19 Dec 2016 19:08:37 +0100 Subject: [PATCH 12/16] Get rid of some implicit memsets for state tracker --- gfx/drivers_shader/shader_gl_cg.c | 16 +++++++++------- gfx/drivers_shader/shader_glsl.c | 20 ++++++++++++-------- 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/gfx/drivers_shader/shader_gl_cg.c b/gfx/drivers_shader/shader_gl_cg.c index 98d851bad9..6aee775f21 100644 --- a/gfx/drivers_shader/shader_gl_cg.c +++ b/gfx/drivers_shader/shader_gl_cg.c @@ -699,7 +699,7 @@ static bool gl_cg_load_imports(void *data) { unsigned i; retro_ctx_memory_info_t mem_info; - struct state_tracker_info tracker_info = {0}; + struct state_tracker_info tracker_info; cg_shader_data_t *cg = (cg_shader_data_t*)data; if (!cg->shader->variables) @@ -731,15 +731,17 @@ static bool gl_cg_load_imports(void *data) } } - mem_info.data = NULL; - mem_info.size = 0; - mem_info.id = RETRO_MEMORY_SYSTEM_RAM; + mem_info.data = NULL; + mem_info.size = 0; + mem_info.id = RETRO_MEMORY_SYSTEM_RAM; core_get_memory(&mem_info); - tracker_info.wram = (uint8_t*)mem_info.data; - tracker_info.info = cg->shader->variable; - tracker_info.info_elem = cg->shader->variables; + tracker_info.wram = (uint8_t*)mem_info.data; + tracker_info.info = cg->shader->variable; + tracker_info.info_elem = cg->shader->variables; + tracker_info.script = NULL; + tracker_info.script_is_file = false; #ifdef HAVE_PYTHON if (*cg->shader->script_path) diff --git a/gfx/drivers_shader/shader_glsl.c b/gfx/drivers_shader/shader_glsl.c index 831cc669a8..5b577dff35 100644 --- a/gfx/drivers_shader/shader_glsl.c +++ b/gfx/drivers_shader/shader_glsl.c @@ -881,23 +881,27 @@ static void *gl_glsl_init(void *data, const char *path) if (glsl->shader->variables) { retro_ctx_memory_info_t mem_info; - struct state_tracker_info info = {0}; + struct state_tracker_info info; - mem_info.id = RETRO_MEMORY_SYSTEM_RAM; + mem_info.id = RETRO_MEMORY_SYSTEM_RAM; core_get_memory(&mem_info); - info.wram = (uint8_t*)mem_info.data; - info.info = glsl->shader->variable; - info.info_elem = glsl->shader->variables; + info.wram = (uint8_t*)mem_info.data; + info.info = glsl->shader->variable; + info.info_elem = glsl->shader->variables; + info.script = NULL; + info.script_class = NULL; #ifdef HAVE_PYTHON - info.script = glsl->shader->script; - info.script_class = *glsl->shader->script_class ? - glsl->shader->script_class : NULL; + info.script = glsl->shader->script; + if (*glsl->shader->script_class) + info.script_class= glsl->shader->script_class; #endif + info.script_is_file = NULL; glsl->state_tracker = state_tracker_init(&info); + if (!glsl->state_tracker) RARCH_WARN("Failed to init state tracker.\n"); } From 5ca7344436d299618b135d11fda080b76a38da05 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Mon, 19 Dec 2016 19:17:23 +0100 Subject: [PATCH 13/16] Get rid of more implicit memsets --- gfx/common/x11_common.c | 2 +- gfx/video_shader_parse.c | 25 ++++++++++++++----------- gfx/video_thread_wrapper.c | 18 ++++++++++++++++-- 3 files changed, 31 insertions(+), 14 deletions(-) diff --git a/gfx/common/x11_common.c b/gfx/common/x11_common.c index b713929203..fd3ccdf0fc 100644 --- a/gfx/common/x11_common.c +++ b/gfx/common/x11_common.c @@ -269,7 +269,7 @@ void x11_move_window(Display *dpy, Window win, int x, int y, static void x11_set_window_class(Display *dpy, Window win) { - XClassHint hint = {0}; + XClassHint hint; hint.res_name = (char*)"retroarch"; /* Broken header. */ hint.res_class = (char*)"retroarch"; diff --git a/gfx/video_shader_parse.c b/gfx/video_shader_parse.c index e699776c42..07ca73f24c 100644 --- a/gfx/video_shader_parse.c +++ b/gfx/video_shader_parse.c @@ -123,22 +123,25 @@ static bool video_shader_parse_pass(config_file_t *conf, char wrap_mode[64]; char frame_count_mod_buf[64]; char srgb_output_buf[64]; - char fp_fbo_buf[64] = {0}; - char mipmap_buf[64] = {0}; - char alias_buf[64] = {0}; - char scale_name_buf[64] = {0}; - char attr_name_buf[64] = {0}; - char scale_type[64] = {0}; - char scale_type_x[64] = {0}; - char scale_type_y[64] = {0}; - char frame_count_mod[64] = {0}; + char fp_fbo_buf[64]; + char mipmap_buf[64]; + char alias_buf[64]; + char scale_name_buf[64]; + char attr_name_buf[64]; + char scale_type[64]; + char scale_type_x[64]; + char scale_type_y[64]; + char frame_count_mod[64]; struct gfx_fbo_scale *scale = NULL; bool tmp_bool = false; float fattr = 0.0f; int iattr = 0; - tmp_str[0] = shader_name[0] = filter_name_buf[0] = - wrap_name_buf[0] = wrap_mode[0] = frame_count_mod_buf[0] = '\0'; + fp_fbo_buf[0] = mipmap_buf[0] = alias_buf[0] = + scale_name_buf[0] = attr_name_buf[0] = scale_type[0] = + scale_type_x[0] = scale_type_y[0] = frame_count_mod[0] = + tmp_str[0] = shader_name[0] = filter_name_buf[0] = + wrap_name_buf[0] = wrap_mode[0] = frame_count_mod_buf[0] = '\0'; srgb_output_buf[0] = '\0'; /* Source */ diff --git a/gfx/video_thread_wrapper.c b/gfx/video_thread_wrapper.c index 7ea5ff254f..cad24dd3cd 100644 --- a/gfx/video_thread_wrapper.c +++ b/gfx/video_thread_wrapper.c @@ -365,7 +365,14 @@ static bool video_thread_handle_packet( case CMD_READ_VIEWPORT: { - struct video_viewport vp = {0}; + struct video_viewport vp; + + vp.x = 0; + vp.y = 0; + vp.width = 0; + vp.height = 0; + vp.full_width = 0; + vp.full_height = 0; thr->driver->viewport_info(thr->driver_data, &vp); @@ -587,11 +594,18 @@ static void video_thread_loop(void *data) if (updated) { + struct video_viewport vp; bool ret = false; bool alive = false; bool focus = false; bool has_windowed = true; - struct video_viewport vp = {0}; + + vp.x = 0; + vp.y = 0; + vp.width = 0; + vp.height = 0; + vp.full_width = 0; + vp.full_height = 0; slock_lock(thr->frame.lock); From 30beee600425b2a593664abfc4705f61062ac8af Mon Sep 17 00:00:00 2001 From: Gregor Richards Date: Mon, 19 Dec 2016 14:54:13 -0500 Subject: [PATCH 14/16] Be consistent about the type of check_frames. Fixes warnings. --- config.def.h | 2 +- configuration.c | 2 +- menu/menu_setting.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/config.def.h b/config.def.h index 78ac7d8191..f0073ee3a9 100644 --- a/config.def.h +++ b/config.def.h @@ -805,7 +805,7 @@ static const bool netplay_nat_traversal = false; static const unsigned netplay_delay_frames = 16; -static const unsigned netplay_check_frames = 30; +static const int netplay_check_frames = 30; /* On save state load, block SRAM from being overwritten. * This could potentially lead to buggy games. */ diff --git a/configuration.c b/configuration.c index 3b3499cfe3..581ea58281 100644 --- a/configuration.c +++ b/configuration.c @@ -948,7 +948,7 @@ static int populate_settings_int(settings_t *settings, struct config_int_setting SETTING_INT("state_slot", (unsigned*)&settings->state_slot, false, 0 /* TODO */, false); #ifdef HAVE_NETWORKING SETTING_INT("netplay_ip_port", &settings->netplay.port, true, RARCH_DEFAULT_PORT, false); - SETTING_INT("netplay_check_frames", &settings->netplay.check_frames, true, netplay_check_frames, false); + SETTING_INT("netplay_check_frames", (unsigned*)&settings->netplay.check_frames, true, netplay_check_frames, false); #endif #ifdef HAVE_LANGEXTRA SETTING_INT("user_language", &settings->user_language, true, RETRO_LANGUAGE_ENGLISH, false); diff --git a/menu/menu_setting.c b/menu/menu_setting.c index 3820cd29d0..18d31fc96e 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -5610,7 +5610,7 @@ static bool setting_append_list( general_read_handler, SD_FLAG_NONE); - CONFIG_UINT( + CONFIG_INT( list, list_info, &settings->netplay.check_frames, MENU_ENUM_LABEL_NETPLAY_CHECK_FRAMES, From 25fcfb47c783a8a7c9f46c5fc320fab5deba1031 Mon Sep 17 00:00:00 2001 From: Twinaphex Date: Mon, 19 Dec 2016 23:17:36 +0100 Subject: [PATCH 15/16] Use C-style string --- configuration.c | 3 ++- deps/SPIRV-Cross | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/configuration.c b/configuration.c index e26fdbb323..bbded9222b 100644 --- a/configuration.c +++ b/configuration.c @@ -1423,7 +1423,8 @@ static config_file_t *open_default_config_file(void) if (!fill_pathname_application_data(application_data, sizeof(application_data))) return NULL; - // Group config file with menu configs, remaps, etc: + + /* Group config file with menu configs, remaps, etc: */ strlcat(application_data, "/config", sizeof(application_data)); path_mkdir(application_data); diff --git a/deps/SPIRV-Cross b/deps/SPIRV-Cross index 2f48065ec1..875c32fd39 160000 --- a/deps/SPIRV-Cross +++ b/deps/SPIRV-Cross @@ -1 +1 @@ -Subproject commit 2f48065ec190d676e9c80c18a208da1ad59dcf9e +Subproject commit 875c32fd39a06f624814effe5eab691b078429f5 From 1d36c5effabd40c610fb5d319ce66953812800e4 Mon Sep 17 00:00:00 2001 From: Twinaphex Date: Mon, 19 Dec 2016 23:19:59 +0100 Subject: [PATCH 16/16] Silence warnings - remove unused variables --- network/netplay/netplay_frontend.c | 3 --- network/netplay/netplay_handshake.c | 3 --- network/netplay/netplay_init.c | 3 --- network/netplay/netplay_io.c | 13 +++++++------ 4 files changed, 7 insertions(+), 15 deletions(-) diff --git a/network/netplay/netplay_frontend.c b/network/netplay/netplay_frontend.c index 822c527305..ed94a5f4d8 100644 --- a/network/netplay/netplay_frontend.c +++ b/network/netplay/netplay_frontend.c @@ -108,8 +108,6 @@ static bool get_self_input_state(netplay_t *netplay) if (!input_driver_is_libretro_input_blocked() && netplay->self_frame_count > 0) { - settings_t *settings = config_get_ptr(); - /* First frame we always give zero input since relying on * input from first frame screws up when we use -F 0. */ retro_input_state_t cb = netplay->cbs.state_cb; @@ -801,7 +799,6 @@ static void netplay_toggle_play_spectate(netplay_t *netplay) else { uint32_t cmd; - size_t i; if (netplay->self_mode == NETPLAY_CONNECTION_PLAYING) { diff --git a/network/netplay/netplay_handshake.c b/network/netplay/netplay_handshake.c index 7b57aa49e0..b68f48e7ee 100644 --- a/network/netplay/netplay_handshake.c +++ b/network/netplay/netplay_handshake.c @@ -268,7 +268,6 @@ static void handshake_password(void *ignore, const char *line) { struct password_buf_s password_buf; char password[8+NETPLAY_PASS_LEN]; /* 8 for salt, 128 for password */ - uint32_t cmd[2]; netplay_t *netplay = handshake_password_netplay; struct netplay_connection *connection = &netplay->connections[0]; @@ -415,7 +414,6 @@ error: static void netplay_handshake_ready(netplay_t *netplay, struct netplay_connection *connection) { - size_t i; char msg[512]; if (netplay->is_server) @@ -837,7 +835,6 @@ bool netplay_handshake_pre_sync(netplay_t *netplay, uint32_t local_sram_size, remote_sram_size; size_t i; ssize_t recvd; - settings_t *settings = config_get_ptr(); retro_ctx_controller_info_t pad; char new_nick[NETPLAY_NICK_LEN]; retro_ctx_memory_info_t mem_info; diff --git a/network/netplay/netplay_init.c b/network/netplay/netplay_init.c index 63609a10a4..18776ec585 100644 --- a/network/netplay/netplay_init.c +++ b/network/netplay/netplay_init.c @@ -312,7 +312,6 @@ bool netplay_init_serialization(netplay_t *netplay) bool netplay_try_init_serialization(netplay_t *netplay) { retro_ctx_serialize_info_t serial_info; - size_t packet_buffer_size; if (netplay->state_size) return true; @@ -368,8 +367,6 @@ bool netplay_wait_and_init_serialization(netplay_t *netplay) static bool netplay_init_buffers(netplay_t *netplay) { - size_t packet_buffer_size; - if (!netplay) return false; diff --git a/network/netplay/netplay_io.c b/network/netplay/netplay_io.c index cb92a16eff..956a9a7d4d 100644 --- a/network/netplay/netplay_io.c +++ b/network/netplay/netplay_io.c @@ -379,6 +379,13 @@ bool netplay_cmd_mode(netplay_t *netplay, return netplay_send_raw_cmd(netplay, connection, cmd, NULL, 0); } +#undef RECV +#define RECV(buf, sz) \ +recvd = netplay_recv(&connection->recv_packet_buffer, connection->fd, (buf), \ +(sz), false); \ +if (recvd >= 0 && recvd < (sz)) goto shrt; \ +else if (recvd < 0) + static bool netplay_get_cmd(netplay_t *netplay, struct netplay_connection *connection, bool *had_input) { @@ -392,12 +399,6 @@ static bool netplay_get_cmd(netplay_t *netplay, if (connection->mode < NETPLAY_CONNECTION_CONNECTED) return netplay_handshake(netplay, connection, had_input); -#define RECV(buf, sz) \ - recvd = netplay_recv(&connection->recv_packet_buffer, connection->fd, (buf), \ - (sz), false); \ - if (recvd >= 0 && recvd < (sz)) goto shrt; \ - else if (recvd < 0) - RECV(&cmd, sizeof(cmd)) return false;