fix wxSocket notifications under MSW after the last change

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56935 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2008-11-23 13:17:49 +00:00
parent 53a161e101
commit 83a7ab5c71
2 changed files with 6 additions and 14 deletions

View File

@ -179,6 +179,10 @@ public:
virtual void Close() = 0;
virtual void Shutdown();
// notify m_wxsocket about the given socket event by calling its (inaptly
// named) OnRequest() method
void NotifyOnStateChange(GSocketEvent event);
// this is officially SOCKET (unsigned int) under Windows but we don't want
// to include winsock.h which defines SOCKET from here so just use int
// under all platforms
@ -210,9 +214,6 @@ public:
protected:
GSocketBase(wxSocketBase& wxsocket);
// notify m_wxsocket
void NotifyOnStateChange(GSocketEvent event);
private:
// set in ctor and never changed except that it's reset to NULL when the
// socket is shut down

View File

@ -387,9 +387,6 @@ LRESULT CALLBACK _GSocket_Internal_WinProc(HWND hWnd,
if (event != -1)
{
cback = socket->m_cbacks[event];
data = socket->m_data[event];
if (event == GSOCK_LOST)
socket->m_detected = GSOCK_LOST_FLAG;
else
@ -397,16 +394,10 @@ LRESULT CALLBACK _GSocket_Internal_WinProc(HWND hWnd,
}
}
/* OK, we can now leave the critical section because we have
* already obtained the callback address (we make no further
* accesses to socket->whatever). However, the app should
* be prepared to handle events from a socket that has just
* been closed!
*/
LeaveCriticalSection(&critical);
if (cback != NULL)
(cback)(socket, event, data);
if ( socket )
socket->NotifyOnStateChange(event);
return (LRESULT) 0;
}