diff --git a/common/src/Utilities/ThreadTools.cpp b/common/src/Utilities/ThreadTools.cpp index 48489bdd31..04ed8ebc04 100644 --- a/common/src/Utilities/ThreadTools.cpp +++ b/common/src/Utilities/ThreadTools.cpp @@ -99,7 +99,7 @@ Threading::PersistentThread::~PersistentThread() throw() // a safe thing to do since typically threads are acquiring and releasing locks // and semaphores all the time. And terminating threads isn't really cross-platform // either so let's just not bother. - + // Additionally since this is a destructor most of our derived class info is lost, // so we can't allow for customized deadlock handlers, least not in any useful // context. So let's just log the condition and move on. @@ -271,16 +271,18 @@ void Threading::PersistentThread::_try_virtual_invoke( void (PersistentThread::* m_except = ex.Clone(); m_except->DiagMsg() = wxsFormat( L"(thread:%s) ", GetName().c_str() ) + m_except->DiagMsg(); } - // ---------------------------------------------------------------------------- - // BaseException / std::exception -- same deal as LogicErrors. - // - catch( std::exception& ex ) + // Bleh... don't bother with std::exception. std::logic_error and runtime_error should catch + // anything coming out of the core STL libraries anyway. + /*catch( std::exception& ex ) { throw Exception::BaseException( wxsFormat( L"(thread: %s) STL exception: %s\n\t%s", GetName().c_str(), fromUTF8( ex.what() ).c_str() ) ); - } + }*/ + // ---------------------------------------------------------------------------- + // BaseException -- same deal as LogicErrors. + // catch( Exception::BaseException& ex ) { m_except = ex.Clone(); @@ -548,7 +550,7 @@ void Threading::Semaphore::Wait() if( !wxThread::IsMain() || (wxTheApp == NULL) ) { WaitRaw(); - } + } else if( _WaitGui_RecursionGuard() ) { if( !WaitRaw(ts_waitgui_deadlock) ) // default is 4 seconds diff --git a/pcsx2/PluginManager.cpp b/pcsx2/PluginManager.cpp index a255714365..d71477889f 100644 --- a/pcsx2/PluginManager.cpp +++ b/pcsx2/PluginManager.cpp @@ -668,7 +668,7 @@ PluginManager::PluginManager( const wxString (&folders)[PluginId_Count] ) { const PluginsEnum_t pid = pi->id; - Console.WriteLn( "\tBinding %s\t: %s ", tbl_PluginInfo[pid].shortname, folders[pid].ToUTF8() ); + Console.WriteLn( "\tBinding %s\t: %s ", tbl_PluginInfo[pid].shortname, folders[pid].ToUTF8().data() ); if( folders[pid].IsEmpty() ) throw Exception::InvalidArgument( "Empty plugin filename." ); @@ -747,7 +747,7 @@ PluginManager::~PluginManager() throw() } DESTRUCTOR_CATCHALL // All library unloading done automatically. - + if( g_plugins == this ) g_plugins = NULL; } @@ -1081,13 +1081,13 @@ void PluginManager::Freeze( PluginsEnum_t pid, SaveStateBase& state ) // older versions of a different size... or could give different sizes depending // on the status of the plugin when loading, so let's ignore it. } - + fP.size = fsize; if( fP.size == 0 ) return; state.PrepBlock( fP.size ); fP.data = (s8*)state.GetBlockPtr(); - + if( state.IsSaving() ) { if( !DoFreeze(pid, FREEZE_SAVE, &fP) ) diff --git a/pcsx2/gui/MainFrame.h b/pcsx2/gui/MainFrame.h index dab9672435..3ced855c21 100644 --- a/pcsx2/gui/MainFrame.h +++ b/pcsx2/gui/MainFrame.h @@ -1,6 +1,6 @@ /* PCSX2 - PS2 Emulator for PCs * Copyright (C) 2002-2009 PCSX2 Dev Team - * + * * PCSX2 is free software: you can redistribute it and/or modify it under the terms * of the GNU Lesser General Public License as published by the Free Software Found- * ation, either version 3 of the License, or (at your option) any later version. @@ -29,7 +29,7 @@ protected: public: GSFrame(wxWindow* parent, const wxString& title); virtual ~GSFrame() throw(); - + protected: void InitDefaultAccelerators(); void OnCloseWindow( wxCloseEvent& evt ); @@ -63,7 +63,7 @@ protected: wxMenu& m_SaveStatesSubmenu; wxMenuItem& m_MenuItem_Console; - + CmdEvt_ListenerBinding m_Listener_CoreThreadStatus; CmdEvt_ListenerBinding m_Listener_CorePluginStatus; EventListenerBinding m_Listener_SettingsApplied; @@ -83,13 +83,13 @@ public: void UpdateIsoSrcFile(); void UpdateIsoSrcSelection(); void ReloadRecentLists(); - + protected: static void OnCoreThreadStatusChanged( void* obj, const wxCommandEvent& evt ); static void OnCorePluginStatusChanged( void* obj, const wxCommandEvent& evt ); static void OnSettingsApplied( void* obj, const int& evt ); - static void MainEmuFrame::OnSettingsLoadSave( void* obj, const IniInterface& evt ); - + static void OnSettingsLoadSave( void* obj, const IniInterface& evt ); + void LoadSaveRecentIsoList( IniInterface& conf ); void ApplySettings(); void ApplyCoreStatus();