[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Wesnoth-cvs-commits] wesnoth/src network_worker.cpp
From: |
David White |
Subject: |
[Wesnoth-cvs-commits] wesnoth/src network_worker.cpp |
Date: |
Sun, 23 Jan 2005 17:04:20 -0500 |
CVSROOT: /cvsroot/wesnoth
Module name: wesnoth
Branch:
Changes by: David White <address@hidden> 05/01/23 22:04:20
Modified files:
src : network_worker.cpp
Log message:
attempt to fix bug where an assertion would fail in network_worker.cpp
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/wesnoth/wesnoth/src/network_worker.cpp.diff?tr1=1.14&tr2=1.15&r1=text&r2=text
Patches:
Index: wesnoth/src/network_worker.cpp
diff -u wesnoth/src/network_worker.cpp:1.14 wesnoth/src/network_worker.cpp:1.15
--- wesnoth/src/network_worker.cpp:1.14 Fri Dec 31 21:01:37 2004
+++ wesnoth/src/network_worker.cpp Sun Jan 23 22:04:20 2005
@@ -167,6 +167,24 @@
}
cond->notify_one();
+}
+
+namespace
+{
+
+void remove_buffers(TCPsocket sock)
+{
+ buffer_set new_bufs;
+ new_bufs.reserve(bufs.size());
+ for(buffer_set::iterator i = bufs.begin(), i_end = bufs.end(); i !=
i_end; ++i) {
+ if ((*i)->sock == sock)
+ delete *i;
+ else
+ new_bufs.push_back(*i);
+ }
+ bufs.swap(new_bufs);
+}
+
}
void close_socket(TCPsocket sock)
@@ -184,17 +202,8 @@
if(lock_it != sockets_locked.end()) {
sockets_locked.erase(lock_it);
}
-
- size_t size = bufs.size();
- buffer_set new_bufs;
- new_bufs.reserve(size);
- for(buffer_set::iterator i = bufs.begin(), i_end =
bufs.end(); i != i_end; ++i) {
- if ((*i)->sock == sock)
- delete *i;
- else
- new_bufs.push_back(*i);
- }
- bufs.swap(new_bufs);
+
+ remove_buffers(sock);
break;
}
@@ -209,7 +218,8 @@
if(i->second == SOCKET_ERROR) {
--socket_errors;
const TCPsocket res = i->first;
- sockets_locked.erase(i);
+ sockets_locked.erase(i);
+ remove_buffers(res);
return res;
}
}
@@ -218,4 +228,4 @@
return 0;
}
-}
+}
\ No newline at end of file
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Wesnoth-cvs-commits] wesnoth/src network_worker.cpp,
David White <=