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.
|