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:
parent
53a161e101
commit
83a7ab5c71
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user