ensure correct linking of the socket manager initializer for static builds of wxWidgets

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58059 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Francesco Montorsi
2009-01-12 23:14:17 +00:00
parent 7ac5e1c908
commit 54e757fc96
3 changed files with 16 additions and 1 deletions

View File

@@ -42,6 +42,7 @@
#include "wx/stopwatch.h" #include "wx/stopwatch.h"
#include "wx/thread.h" #include "wx/thread.h"
#include "wx/evtloop.h" #include "wx/evtloop.h"
#include "wx/link.h"
#include "wx/private/fd.h" #include "wx/private/fd.h"
#include "wx/private/socket.h" #include "wx/private/socket.h"
@@ -769,7 +770,8 @@ void wxSocketBase::Init()
{ {
// this Initialize() will be undone by wxSocketModule::OnExit(), all // this Initialize() will be undone by wxSocketModule::OnExit(), all
// the other calls to it should be matched by a call to Shutdown() // the other calls to it should be matched by a call to Shutdown()
Initialize(); if (!Initialize())
wxLogError("Cannot initialize wxSocketBase");
} }
} }
@@ -1988,4 +1990,9 @@ private:
IMPLEMENT_DYNAMIC_CLASS(wxSocketModule, wxModule) IMPLEMENT_DYNAMIC_CLASS(wxSocketModule, wxModule)
// NOTE: we need to force linking against socketiohandler.cpp otherwise in
// static builds of wxWidgets the ManagerSetter::ManagerSetter ctor
// contained there wouldn't be ever called
wxFORCE_LINK_MODULE( socketiohandler )
#endif // wxUSE_SOCKETS #endif // wxUSE_SOCKETS

View File

@@ -24,6 +24,7 @@
#include "wx/apptrait.h" #include "wx/apptrait.h"
#include "wx/private/socket.h" #include "wx/private/socket.h"
#include "wx/link.h"
// ============================================================================ // ============================================================================
// implementation // implementation
@@ -111,4 +112,8 @@ static struct ManagerSetter
} }
} gs_managerSetter; } gs_managerSetter;
// see the relative linker macro in socket.cpp
wxFORCE_LINK_THIS_MODULE( socketiohandler );
#endif // wxUSE_SOCKETS #endif // wxUSE_SOCKETS

View File

@@ -107,6 +107,9 @@ wxSocketError wxSocketImplUnix::GetLastError() const
void wxSocketImplUnix::DoEnableEvents(int flags, bool enable) void wxSocketImplUnix::DoEnableEvents(int flags, bool enable)
{ {
wxSocketManager * const manager = wxSocketManager::Get(); wxSocketManager * const manager = wxSocketManager::Get();
if (!manager)
return;
if ( enable ) if ( enable )
{ {
if ( flags & wxSOCKET_INPUT_FLAG ) if ( flags & wxSOCKET_INPUT_FLAG )