Fixed a crash caused by the stack being unaligned when entering ThreadImpl::entryPoint if compiled by GCC or clang and run on Windows XP 32-bit. (#412)

This commit is contained in:
binary1248 2014-07-13 09:22:25 +02:00
parent 337df1ea5f
commit 520025d904

View File

@ -31,6 +31,17 @@
#include <SFML/System/NonCopyable.hpp> #include <SFML/System/NonCopyable.hpp>
#include <windows.h> #include <windows.h>
// Fix for unaligned stack with clang and GCC on Windows XP 32-bit
#if defined(SFML_SYSTEM_WINDOWS) && (defined(__clang__) || defined(__GNUC__))
#define ALIGN_STACK __attribute__((__force_align_arg_pointer__))
#else
#define ALIGN_STACK
#endif
namespace sf namespace sf
{ {
@ -81,7 +92,7 @@ private :
/// \return OS specific error code /// \return OS specific error code
/// ///
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
static unsigned int __stdcall entryPoint(void* userData); ALIGN_STACK static unsigned int __stdcall entryPoint(void* userData);
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
// Member data // Member data