From: <arn...@us...> - 2008-01-03 19:44:06
|
Revision: 123 http://adchpp.svn.sourceforge.net/adchpp/?rev=123&view=rev Author: arnetheduck Date: 2008-01-03 11:43:59 -0800 (Thu, 03 Jan 2008) Log Message: ----------- fix npe Modified Paths: -------------- adchpp/trunk/adchpp/ManagedSocket.cpp adchpp/trunk/adchpp/SocketManager.cpp Modified: adchpp/trunk/adchpp/ManagedSocket.cpp =================================================================== --- adchpp/trunk/adchpp/ManagedSocket.cpp 2008-01-03 15:51:09 UTC (rev 122) +++ adchpp/trunk/adchpp/ManagedSocket.cpp 2008-01-03 19:43:59 UTC (rev 123) @@ -32,9 +32,7 @@ FastMutex ManagedSocket::writeMutex; ManagedSocket::ManagedSocket() throw() : overFlow(0), disc(0) -#ifdef _WIN32 -, writeBuf(0) -#else +#ifndef _WIN32 , blocked(false) #endif { Modified: adchpp/trunk/adchpp/SocketManager.cpp =================================================================== --- adchpp/trunk/adchpp/SocketManager.cpp 2008-01-03 15:51:09 UTC (rev 122) +++ adchpp/trunk/adchpp/SocketManager.cpp 2008-01-03 19:43:59 UTC (rev 123) @@ -322,8 +322,7 @@ DWORD x = 0; ms->writeBuf.push_back(BufferPtr(new Buffer(ACCEPT_BUF_SIZE))); - ms->writeBuf.back()->resize(ACCEPT_BUF_SIZE); - + MSOverlapped* overlapped = pool.get(); *overlapped = MSOverlapped(MSOverlapped::ACCEPT_DONE, ms); @@ -438,7 +437,7 @@ return; } - ms->wsabuf->resize(sizeof(WSABUF) * ms->writeBuf.size()); + ms->wsabuf = BufferPtr(new Buffer(sizeof(WSABUF) * ms->writeBuf.size())); for(size_t i = 0; i < ms->writeBuf.size(); ++i) { WSABUF wsa = { (u_long)ms->writeBuf[i]->size(), (char*)ms->writeBuf[i]->data() }; memcpy(ms->wsabuf->data() + i * sizeof(WSABUF), &wsa, sizeof(WSABUF)); @@ -459,6 +458,7 @@ void handleWriteDone(const ManagedSocketPtr& ms, DWORD bytes) throw() { ms->completeWrite(ms->writeBuf, bytes); + ms->wsabuf = BufferPtr(); } void failWrite(const ManagedSocketPtr& ms, int error) throw() { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |