From 299421a02a49ae201362348931384e55ce36f9f7 Mon Sep 17 00:00:00 2001 From: comex Date: Sun, 22 Sep 2013 22:48:50 -0400 Subject: [PATCH] Don't call into wx in static initializers - crashes on Windows. --- Source/Core/DolphinWX/Src/CheatsWindow.cpp | 6 +-- .../DolphinWX/Src/Debugger/DebuggerPanel.cpp | 49 ++++++++++--------- 2 files changed, 29 insertions(+), 26 deletions(-) diff --git a/Source/Core/DolphinWX/Src/CheatsWindow.cpp b/Source/Core/DolphinWX/Src/CheatsWindow.cpp index 1fe6f750ba..332e186289 100644 --- a/Source/Core/DolphinWX/Src/CheatsWindow.cpp +++ b/Source/Core/DolphinWX/Src/CheatsWindow.cpp @@ -15,8 +15,6 @@ #include "WxUtils.h" #define MAX_CHEAT_SEARCH_RESULTS_DISPLAY 256 -const wxString title = _("Cheats Manager"); - extern std::vector arCodes; extern CFrame* main_frame; @@ -24,7 +22,7 @@ extern CFrame* main_frame; static wxCheatsWindow *g_cheat_window; wxCheatsWindow::wxCheatsWindow(wxWindow* const parent) - : wxDialog(parent, wxID_ANY, title, wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER|wxMAXIMIZE_BOX|wxMINIMIZE_BOX|wxDIALOG_NO_PARENT) + : wxDialog(parent, wxID_ANY, "", wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER|wxMAXIMIZE_BOX|wxMINIMIZE_BOX|wxDIALOG_NO_PARENT) { ::g_cheat_window = this; @@ -254,6 +252,8 @@ void wxCheatsWindow::UpdateGUI() // enable controls button_apply->Enable(Core::IsRunning()); + wxString title = _("Cheats Manager"); + // write the ISO name in the title if (Core::IsRunning()) SetTitle(title + ": " + Core::g_CoreStartupParameter.GetUniqueID() + " - " + Core::g_CoreStartupParameter.m_strName); diff --git a/Source/Core/DolphinWX/Src/Debugger/DebuggerPanel.cpp b/Source/Core/DolphinWX/Src/Debugger/DebuggerPanel.cpp index 5a2e93166b..a12e4d638a 100644 --- a/Source/Core/DolphinWX/Src/Debugger/DebuggerPanel.cpp +++ b/Source/Core/DolphinWX/Src/Debugger/DebuggerPanel.cpp @@ -99,32 +99,35 @@ struct PauseEventMap const wxString ListStr; }; -static PauseEventMap pauseEventMap[] = { - {NEXT_FRAME, _("Frame")}, - {NEXT_FLUSH, _("Flush")}, - - {NEXT_PIXEL_SHADER_CHANGE, _("Pixel Shader")}, - {NEXT_VERTEX_SHADER_CHANGE, _("Vertex Shader")}, - {NEXT_TEXTURE_CHANGE, _("Texture")}, - {NEXT_NEW_TEXTURE, _("New Texture")}, - - {NEXT_XFB_CMD, _("XFB Cmd")}, - {NEXT_EFB_CMD, _("EFB Cmd")}, - - {NEXT_MATRIX_CMD, _("Matrix Cmd")}, - {NEXT_VERTEX_CMD, _("Vertex Cmd")}, - {NEXT_TEXTURE_CMD, _("Texture Cmd")}, - {NEXT_LIGHT_CMD, _("Light Cmd")}, - {NEXT_FOG_CMD, _("Fog Cmd")}, - - {NEXT_SET_TLUT, _("TLUT Cmd")}, - - {NEXT_ERROR, _("Error")} -}; -static const int numPauseEventMap = sizeof(pauseEventMap)/sizeof(PauseEventMap); +static PauseEventMap* pauseEventMap; void GFXDebuggerPanel::CreateGUIControls() { + static PauseEventMap map[] = { + {NEXT_FRAME, _("Frame")}, + {NEXT_FLUSH, _("Flush")}, + + {NEXT_PIXEL_SHADER_CHANGE, _("Pixel Shader")}, + {NEXT_VERTEX_SHADER_CHANGE, _("Vertex Shader")}, + {NEXT_TEXTURE_CHANGE, _("Texture")}, + {NEXT_NEW_TEXTURE, _("New Texture")}, + + {NEXT_XFB_CMD, _("XFB Cmd")}, + {NEXT_EFB_CMD, _("EFB Cmd")}, + + {NEXT_MATRIX_CMD, _("Matrix Cmd")}, + {NEXT_VERTEX_CMD, _("Vertex Cmd")}, + {NEXT_TEXTURE_CMD, _("Texture Cmd")}, + {NEXT_LIGHT_CMD, _("Light Cmd")}, + {NEXT_FOG_CMD, _("Fog Cmd")}, + + {NEXT_SET_TLUT, _("TLUT Cmd")}, + + {NEXT_ERROR, _("Error")} + }; + pauseEventMap = map; + const int numPauseEventMap = sizeof(map)/sizeof(PauseEventMap); + // Basic settings CenterOnParent();