mirror of https://github.com/PCSX2/pcsx2.git
Linux: Minor fixups!
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1952 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
8ba39b71de
commit
db01c15977
|
@ -1,6 +1,6 @@
|
||||||
/* PCSX2 - PS2 Emulator for PCs
|
/* PCSX2 - PS2 Emulator for PCs
|
||||||
* Copyright (C) 2002-2009 PCSX2 Dev Team
|
* Copyright (C) 2002-2009 PCSX2 Dev Team
|
||||||
*
|
*
|
||||||
* PCSX2 is free software: you can redistribute it and/or modify it under the terms
|
* 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-
|
* 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.
|
* ation, either version 3 of the License, or (at your option) any later version.
|
||||||
|
@ -229,7 +229,7 @@ This theoretically unoptimizes. Not having much luck so far.
|
||||||
|
|
||||||
# define __naked // GCC lacks the naked specifier
|
# define __naked // GCC lacks the naked specifier
|
||||||
# define __assume(cond) // GCC has no equivalent for __assume
|
# define __assume(cond) // GCC has no equivalent for __assume
|
||||||
# define CALLBACK __stdcall
|
# define CALLBACK __attribute__((stdcall))
|
||||||
|
|
||||||
// Inlining note: GCC needs ((unused)) attributes defined on inlined functions to suppress
|
// Inlining note: GCC needs ((unused)) attributes defined on inlined functions to suppress
|
||||||
// warnings when a static inlined function isn't used in the scope of a single file (which
|
// warnings when a static inlined function isn't used in the scope of a single file (which
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* PCSX2 - PS2 Emulator for PCs
|
/* PCSX2 - PS2 Emulator for PCs
|
||||||
* Copyright (C) 2002-2009 PCSX2 Dev Team
|
* Copyright (C) 2002-2009 PCSX2 Dev Team
|
||||||
*
|
*
|
||||||
* PCSX2 is free software: you can redistribute it and/or modify it under the terms
|
* 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-
|
* 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.
|
* ation, either version 3 of the License, or (at your option) any later version.
|
||||||
|
@ -47,12 +47,12 @@ DEVASSERT_INLINE void pxOnAssert( const wxChar* file, int line, const char* func
|
||||||
#ifdef PCSX2_DEVBUILD
|
#ifdef PCSX2_DEVBUILD
|
||||||
RecursionGuard guard( s_assert_guard );
|
RecursionGuard guard( s_assert_guard );
|
||||||
if( guard.IsReentrant() ) return;
|
if( guard.IsReentrant() ) return;
|
||||||
|
|
||||||
if( wxTheApp == NULL )
|
if( wxTheApp == NULL )
|
||||||
{
|
{
|
||||||
// Note: Format uses MSVC's syntax for output window hotlinking.
|
// Note: Format uses MSVC's syntax for output window hotlinking.
|
||||||
wxsFormat( L"%s(%d): Assertion failed in %s: %s\n",
|
wxsFormat( L"%s(%d): Assertion failed in %s: %s\n",
|
||||||
file, line, fromUTF8(func), msg );
|
file, line, fromUTF8(func).c_str(), msg );
|
||||||
|
|
||||||
wxLogError( msg );
|
wxLogError( msg );
|
||||||
}
|
}
|
||||||
|
@ -179,7 +179,7 @@ wxString Exception::StateCrcMismatch::FormatDisplayMessage() const
|
||||||
{
|
{
|
||||||
return wxsFormat(
|
return wxsFormat(
|
||||||
m_message_user + L"\n\n" +
|
m_message_user + L"\n\n" +
|
||||||
wxsFormat(
|
wxsFormat(
|
||||||
L"Savestate game/crc mismatch. Cdvd CRC: 0x%X Game CRC: 0x%X\n",
|
L"Savestate game/crc mismatch. Cdvd CRC: 0x%X Game CRC: 0x%X\n",
|
||||||
Crc_Savestate, Crc_Cdvd
|
Crc_Savestate, Crc_Cdvd
|
||||||
)
|
)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* PCSX2 - PS2 Emulator for PCs
|
/* PCSX2 - PS2 Emulator for PCs
|
||||||
* Copyright (C) 2002-2009 PCSX2 Dev Team
|
* Copyright (C) 2002-2009 PCSX2 Dev Team
|
||||||
*
|
*
|
||||||
* PCSX2 is free software: you can redistribute it and/or modify it under the terms
|
* 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-
|
* 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.
|
* ation, either version 3 of the License, or (at your option) any later version.
|
||||||
|
@ -92,7 +92,7 @@ void wxDirName::Rmdir()
|
||||||
bool wxDirName::Mkdir()
|
bool wxDirName::Mkdir()
|
||||||
{
|
{
|
||||||
if( Exists() ) return true;
|
if( Exists() ) return true;
|
||||||
|
|
||||||
// Recursively create child directories as needed:
|
// Recursively create child directories as needed:
|
||||||
wxDirName recurse( *this );
|
wxDirName recurse( *this );
|
||||||
recurse.RemoveLastDir();
|
recurse.RemoveLastDir();
|
||||||
|
@ -173,7 +173,7 @@ wxString Path::GetDirectory( const wxString& src )
|
||||||
// Example /this/that/something.txt -> dest == "/"
|
// Example /this/that/something.txt -> dest == "/"
|
||||||
wxString Path::GetRootDirectory( const wxString& src )
|
wxString Path::GetRootDirectory( const wxString& src )
|
||||||
{
|
{
|
||||||
int pos = src.find_first_of( wxFileName::GetPathSeparators() );
|
size_t pos = src.find_first_of( wxFileName::GetPathSeparators() );
|
||||||
if( pos == wxString::npos )
|
if( pos == wxString::npos )
|
||||||
return wxString();
|
return wxString();
|
||||||
else
|
else
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* PCSX2 - PS2 Emulator for PCs
|
/* PCSX2 - PS2 Emulator for PCs
|
||||||
* Copyright (C) 2002-2009 PCSX2 Dev Team
|
* Copyright (C) 2002-2009 PCSX2 Dev Team
|
||||||
*
|
*
|
||||||
* PCSX2 is free software: you can redistribute it and/or modify it under the terms
|
* 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-
|
* 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.
|
* ation, either version 3 of the License, or (at your option) any later version.
|
||||||
|
@ -12,7 +12,7 @@
|
||||||
* You should have received a copy of the GNU General Public License along with PCSX2.
|
* You should have received a copy of the GNU General Public License along with PCSX2.
|
||||||
* If not, see <http://www.gnu.org/licenses/>.
|
* If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "PrecompiledHeader.h"
|
#include "PrecompiledHeader.h"
|
||||||
|
|
||||||
const wxRect wxDefaultRect( wxDefaultCoord, wxDefaultCoord, wxDefaultCoord, wxDefaultCoord );
|
const wxRect wxDefaultRect( wxDefaultCoord, wxDefaultCoord, wxDefaultCoord, wxDefaultCoord );
|
||||||
|
@ -161,7 +161,7 @@ bool TryParse( wxRect& dest, const wxString& src, const wxRect& defval, const wx
|
||||||
dest = defval;
|
dest = defval;
|
||||||
|
|
||||||
wxStringTokenizer parts( src, separators );
|
wxStringTokenizer parts( src, separators );
|
||||||
|
|
||||||
wxPoint point;
|
wxPoint point;
|
||||||
wxSize size;
|
wxSize size;
|
||||||
|
|
||||||
|
@ -172,7 +172,7 @@ bool TryParse( wxRect& dest, const wxString& src, const wxRect& defval, const wx
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Performs a cross-platform puts operation, which adds CRs to naked LFs on Win32 platforms,
|
// Performs a cross-platform puts operation, which adds CRs to naked LFs on Win32 platforms,
|
||||||
// so that Notepad won't throw a fit and Rama can read the logs again! On Unix and Mac platforms,
|
// so that Notepad won't throw a fit and Rama can read the logs again! On Unix and Mac platforms,
|
||||||
// the input string is written unmodified.
|
// the input string is written unmodified.
|
||||||
//
|
//
|
||||||
|
@ -187,7 +187,7 @@ void px_fputs( FILE* fp, const char* src )
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
// Windows needs CR's partnered with all newlines, or else notepad.exe can't view
|
// Windows needs CR's partnered with all newlines, or else notepad.exe can't view
|
||||||
// the stupid logfile. Best way is to write one char at a time.. >_<
|
// the stupid logfile. Best way is to write one char at a time.. >_<
|
||||||
|
|
||||||
const char* curchar = src;
|
const char* curchar = src;
|
||||||
bool prevcr = false;
|
bool prevcr = false;
|
||||||
while( *curchar != 0 )
|
while( *curchar != 0 )
|
||||||
|
@ -214,6 +214,6 @@ void px_fputs( FILE* fp, const char* src )
|
||||||
// Linux is happy with plain old LFs. Not sure about Macs... does OSX still
|
// Linux is happy with plain old LFs. Not sure about Macs... does OSX still
|
||||||
// go by the old school Mac style of using Crs only?
|
// go by the old school Mac style of using Crs only?
|
||||||
|
|
||||||
fputs( src, emuLog ); // fputs does not do automatic newlines, so it's ok!
|
fputs( src, fp ); // fputs does not do automatic newlines, so it's ok!
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* PCSX2 - PS2 Emulator for PCs
|
/* PCSX2 - PS2 Emulator for PCs
|
||||||
* Copyright (C) 2002-2009 PCSX2 Dev Team
|
* Copyright (C) 2002-2009 PCSX2 Dev Team
|
||||||
*
|
*
|
||||||
* PCSX2 is free software: you can redistribute it and/or modify it under the terms
|
* 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-
|
* 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.
|
* ation, either version 3 of the License, or (at your option) any later version.
|
||||||
|
@ -12,7 +12,7 @@
|
||||||
* You should have received a copy of the GNU General Public License along with PCSX2.
|
* You should have received a copy of the GNU General Public License along with PCSX2.
|
||||||
* If not, see <http://www.gnu.org/licenses/>.
|
* If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#include "PrecompiledHeader.h"
|
#include "PrecompiledHeader.h"
|
||||||
#include "Threading.h"
|
#include "Threading.h"
|
||||||
|
@ -52,7 +52,7 @@ namespace Threading
|
||||||
// against the thread. Extending classes should almost always implement their own
|
// against the thread. Extending classes should almost always implement their own
|
||||||
// thread closure process, since any PersistentThread will, by design, not terminate
|
// thread closure process, since any PersistentThread will, by design, not terminate
|
||||||
// unless it has been properly canceled.
|
// unless it has been properly canceled.
|
||||||
//
|
//
|
||||||
// Thread safetly: This class must not be deleted from its own thread. That would be
|
// Thread safetly: This class must not be deleted from its own thread. That would be
|
||||||
// like marrying your sister, and then cheating on her with your daughter.
|
// like marrying your sister, and then cheating on her with your daughter.
|
||||||
PersistentThread::~PersistentThread() throw()
|
PersistentThread::~PersistentThread() throw()
|
||||||
|
@ -222,12 +222,12 @@ namespace Threading
|
||||||
catch( std::logic_error& ex )
|
catch( std::logic_error& ex )
|
||||||
{
|
{
|
||||||
throw Exception::LogicError( wxsFormat( L"(thread: %s) STL Logic Error: %s\n\t%s",
|
throw Exception::LogicError( wxsFormat( L"(thread: %s) STL Logic Error: %s\n\t%s",
|
||||||
GetName().c_str(), wxString::FromUTF8( ex.what() ) )
|
GetName().c_str(), fromUTF8( ex.what() ).c_str() )
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
catch( Exception::LogicError& ex )
|
catch( Exception::LogicError& ex )
|
||||||
{
|
{
|
||||||
m_except->DiagMsg() = wxsFormat( L"(thread:%s) ", GetName() ) + m_except->DiagMsg();
|
m_except->DiagMsg() = wxsFormat( L"(thread:%s) ", GetName().c_str() ) + m_except->DiagMsg();
|
||||||
ex.Rethrow();
|
ex.Rethrow();
|
||||||
}
|
}
|
||||||
catch( std::runtime_error& ex )
|
catch( std::runtime_error& ex )
|
||||||
|
@ -235,25 +235,25 @@ namespace Threading
|
||||||
m_except = new Exception::RuntimeError(
|
m_except = new Exception::RuntimeError(
|
||||||
// Diagnostic message:
|
// Diagnostic message:
|
||||||
wxsFormat( L"(thread: %s) STL Runtime Error: %s\n\t%s",
|
wxsFormat( L"(thread: %s) STL Runtime Error: %s\n\t%s",
|
||||||
GetName().c_str(), wxString::FromUTF8( ex.what() )
|
GetName().c_str(), fromUTF8( ex.what() ).c_str()
|
||||||
),
|
),
|
||||||
|
|
||||||
// User Message (not translated, std::exception doesn't have that kind of fancy!
|
// User Message (not translated, std::exception doesn't have that kind of fancy!
|
||||||
wxsFormat( L"A runtime error occurred in %s:\n\n%s (STL)",
|
wxsFormat( L"A runtime error occurred in %s:\n\n%s (STL)",
|
||||||
GetName().c_str(), wxString::FromUTF8( ex.what() )
|
GetName().c_str(), fromUTF8( ex.what() ).c_str()
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
catch( Exception::RuntimeError& ex )
|
catch( Exception::RuntimeError& ex )
|
||||||
{
|
{
|
||||||
m_except = ex.Clone();
|
m_except = ex.Clone();
|
||||||
m_except->DiagMsg() = wxsFormat( L"(thread:%s) ", GetName() ) + m_except->DiagMsg();
|
m_except->DiagMsg() = wxsFormat( L"(thread:%s) ", GetName().c_str() ) + m_except->DiagMsg();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void PersistentThread::OnStart() {}
|
void PersistentThread::OnStart() {}
|
||||||
void PersistentThread::OnThreadCleanup() {}
|
void PersistentThread::OnThreadCleanup() {}
|
||||||
|
|
||||||
void* PersistentThread::_internal_callback( void* itsme )
|
void* PersistentThread::_internal_callback( void* itsme )
|
||||||
{
|
{
|
||||||
jASSUME( itsme != NULL );
|
jASSUME( itsme != NULL );
|
||||||
|
@ -269,17 +269,17 @@ namespace Threading
|
||||||
{
|
{
|
||||||
DoSetThreadName( toUTF8(name) );
|
DoSetThreadName( toUTF8(name) );
|
||||||
}
|
}
|
||||||
|
|
||||||
void PersistentThread::DoSetThreadName( __unused const char* name )
|
void PersistentThread::DoSetThreadName( __unused const char* name )
|
||||||
{
|
{
|
||||||
wxASSERT( IsSelf() ); // only allowed from our own thread, thanks.
|
wxASSERT( IsSelf() ); // only allowed from our own thread, thanks.
|
||||||
|
|
||||||
#ifdef _WINDOWS_
|
#ifdef _WINDOWS_
|
||||||
|
|
||||||
// This code sample was borrowed form some obscure MSDN article.
|
// This code sample was borrowed form some obscure MSDN article.
|
||||||
// In a rare bout of sanity, it's an actual Micrsoft-published hack
|
// In a rare bout of sanity, it's an actual Micrsoft-published hack
|
||||||
// that actually works!
|
// that actually works!
|
||||||
|
|
||||||
static const int MS_VC_EXCEPTION = 0x406D1388;
|
static const int MS_VC_EXCEPTION = 0x406D1388;
|
||||||
|
|
||||||
#pragma pack(push,8)
|
#pragma pack(push,8)
|
||||||
|
@ -332,7 +332,7 @@ namespace Threading
|
||||||
m_post_TaskComplete.Reset();
|
m_post_TaskComplete.Reset();
|
||||||
m_sem_event.Post();
|
m_sem_event.Post();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Blocks current thread execution pending the completion of the parallel task.
|
// Blocks current thread execution pending the completion of the parallel task.
|
||||||
void BaseTaskThread::WaitForResult()
|
void BaseTaskThread::WaitForResult()
|
||||||
{
|
{
|
||||||
|
@ -402,7 +402,7 @@ namespace Threading
|
||||||
// --------------------------------------------------------------------------------------
|
// --------------------------------------------------------------------------------------
|
||||||
// Semaphore Implementations
|
// Semaphore Implementations
|
||||||
// --------------------------------------------------------------------------------------
|
// --------------------------------------------------------------------------------------
|
||||||
|
|
||||||
Semaphore::Semaphore()
|
Semaphore::Semaphore()
|
||||||
{
|
{
|
||||||
sem_init( &sema, false, 0 );
|
sem_init( &sema, false, 0 );
|
||||||
|
@ -452,7 +452,7 @@ namespace Threading
|
||||||
{
|
{
|
||||||
// In order to avoid deadlock we need to make sure we cut some time
|
// In order to avoid deadlock we need to make sure we cut some time
|
||||||
// to handle messages.
|
// to handle messages.
|
||||||
|
|
||||||
do {
|
do {
|
||||||
wxTheApp->Yield();
|
wxTheApp->Yield();
|
||||||
} while( !Wait( ts_msec_250 ) );
|
} while( !Wait( ts_msec_250 ) );
|
||||||
|
|
|
@ -269,6 +269,7 @@
|
||||||
<Unit filename="../gui/AppAssert.cpp" />
|
<Unit filename="../gui/AppAssert.cpp" />
|
||||||
<Unit filename="../gui/AppConfig.cpp" />
|
<Unit filename="../gui/AppConfig.cpp" />
|
||||||
<Unit filename="../gui/AppConfig.h" />
|
<Unit filename="../gui/AppConfig.h" />
|
||||||
|
<Unit filename="../gui/AppInit.cpp" />
|
||||||
<Unit filename="../gui/AppMain.cpp" />
|
<Unit filename="../gui/AppMain.cpp" />
|
||||||
<Unit filename="../gui/AppRes.cpp" />
|
<Unit filename="../gui/AppRes.cpp" />
|
||||||
<Unit filename="../gui/CheckedStaticBox.cpp" />
|
<Unit filename="../gui/CheckedStaticBox.cpp" />
|
||||||
|
|
|
@ -566,7 +566,7 @@ void Panels::PluginSelectorPanel::EnumThread::ExecuteTask()
|
||||||
DoNextPlugin( curidx );
|
DoNextPlugin( curidx );
|
||||||
if( (curidx & 3) == 3 ) wxGetApp().Ping(); // gives the gui thread some time to refresh
|
if( (curidx & 3) == 3 ) wxGetApp().Ping(); // gives the gui thread some time to refresh
|
||||||
pthread_testcancel();
|
pthread_testcancel();
|
||||||
Sleep(150);
|
//Sleep(150); // uncomment this to slow down the selector, for debugging threading.
|
||||||
}
|
}
|
||||||
|
|
||||||
wxCommandEvent done( pxEVT_EnumerationFinished );
|
wxCommandEvent done( pxEVT_EnumerationFinished );
|
||||||
|
|
Loading…
Reference in New Issue