From b789d5ebf6bba3231cb77839cb48e7c5d9c43930 Mon Sep 17 00:00:00 2001 From: "madmaxoft@gmail.com" Date: Mon, 12 Mar 2012 13:31:34 +0000 Subject: [PATCH] Fixing compilation on Drawin 9 / MacOS X git-svn-id: http://mc-server.googlecode.com/svn/trunk@402 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- WebServer/Socket.cpp | 4 ++++ source/cEvent.cpp | 17 +++++------------ source/cMonster.cpp | 2 +- source/cSocket.cpp | 2 +- 4 files changed, 11 insertions(+), 14 deletions(-) diff --git a/WebServer/Socket.cpp b/WebServer/Socket.cpp index 695d18b2b..59efc8127 100644 --- a/WebServer/Socket.cpp +++ b/WebServer/Socket.cpp @@ -46,6 +46,10 @@ #define MSG_NOSIGNAL (0) #endif +#ifndef MSG_NOSIGNAL + #define MSG_NOSIGNAL 0 +#endif // MSG_NOSIGNAL + using namespace std; int Socket::nofSockets_= 0; diff --git a/source/cEvent.cpp b/source/cEvent.cpp index c52a8a226..17d56be91 100644 --- a/source/cEvent.cpp +++ b/source/cEvent.cpp @@ -26,11 +26,7 @@ cEvent::cEvent(void) m_Event = new sem_t; if (sem_init(m_Event, 0, 0)) { - LOGWARN("WARNING cEvent: Could not create unnamed semaphore, fallback to named."); - - // _X: I'm unconvinced about using sem_unlink() just after a successful sem_open(), it seems wrong - why destroy the object just after creating? - ASSERT(!"This codepath is really weird, if it is ever used, please check that everything works."); - + // This path is used by MacOS, because it doesn't support unnamed semaphores. delete m_Event; m_bIsNamed = true; @@ -42,13 +38,6 @@ cEvent::cEvent(void) LOGERROR("cEvent: Cannot create event, errno = %i. Aborting server.", errno); abort(); } - else - { - if( sem_unlink(EventName.c_str()) != 0 ) - { - LOGWARN("ERROR: Could not unlink cEvent. (%i)", errno); - } - } } #endif // *nix } @@ -64,6 +53,10 @@ cEvent::~cEvent() #else if (m_bIsNamed) { + if (sem_unlink(EventName.c_str()) != 0) + { + LOGWARN("ERROR: Could not unlink cEvent. (%i)", errno); + } if (sem_close(m_Event) != 0) { LOGERROR("ERROR: Could not close cEvent. (%i)", errno); diff --git a/source/cMonster.cpp b/source/cMonster.cpp index 764d7d67a..80c7e8d24 100644 --- a/source/cMonster.cpp +++ b/source/cMonster.cpp @@ -84,7 +84,7 @@ cPacket * cMonster::GetSpawnPacket(void) const cPacket_SpawnMob * Spawn = new cPacket_SpawnMob; Spawn->m_UniqueID = GetUniqueID(); Spawn->m_Type = m_MobType; - *Spawn->m_Pos = Vector3i((m_Pos) * 32); + *Spawn->m_Pos = ((Vector3i)(m_Pos)) * 32; Spawn->m_Yaw = 0; Spawn->m_Pitch = 0; Spawn->m_MetaDataSize = 1; diff --git a/source/cSocket.cpp b/source/cSocket.cpp index 0e3d2730c..880169483 100644 --- a/source/cSocket.cpp +++ b/source/cSocket.cpp @@ -111,7 +111,7 @@ AString cSocket::GetErrorString( int a_ErrNo ) // According to http://linux.die.net/man/3/strerror_r there are two versions of strerror_r(): - #if ((((_POSIX_C_SOURCE >= 200112L) || (_XOPEN_SOURCE >= 600)) && ! _GNU_SOURCE) || __CYGWIN32__ ) // XSI version of strerror_r(): + #if ((((_POSIX_C_SOURCE >= 200112L) || (_XOPEN_SOURCE >= 600)) && ! _GNU_SOURCE && !__APPLE__) || __CYGWIN32__ ) // XSI version of strerror_r(): int res = strerror_r( errno, buffer, ARRAYCOUNT(buffer) ); if( res == 0 )