summaryrefslogtreecommitdiffstats
path: root/net/socket/client_socket_pool_base.cc
diff options
context:
space:
mode:
authorestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-05-04 23:30:17 +0000
committerestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-05-04 23:30:17 +0000
commite7e993263d1994d2aae4394e2eb220a8ce2b68e3 (patch)
tree2fa80cc8d3c19ef3be1c37be0f58ba17c2475056 /net/socket/client_socket_pool_base.cc
parent0a7da815724b3d3431c900d595aad1aad30f8cd7 (diff)
downloadchromium_src-e7e993263d1994d2aae4394e2eb220a8ce2b68e3.zip
chromium_src-e7e993263d1994d2aae4394e2eb220a8ce2b68e3.tar.gz
chromium_src-e7e993263d1994d2aae4394e2eb220a8ce2b68e3.tar.bz2
Fix some uses of scoped_ptr.release() in net/ such that the return value is not ignored.
client_socket_pool_base.cc change contributed by vandebo@chromium BUG=42904 TEST=existing net tests/ Review URL: http://codereview.chromium.org/1756019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@46409 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/socket/client_socket_pool_base.cc')
-rw-r--r--net/socket/client_socket_pool_base.cc15
1 files changed, 7 insertions, 8 deletions
diff --git a/net/socket/client_socket_pool_base.cc b/net/socket/client_socket_pool_base.cc
index 739bb82..9fe07d3 100644
--- a/net/socket/client_socket_pool_base.cc
+++ b/net/socket/client_socket_pool_base.cc
@@ -175,10 +175,12 @@ int ClientSocketPoolBaseHelper::RequestSocket(
request->net_log().BeginEvent(NetLog::TYPE_SOCKET_POOL, NULL);
Group& group = group_map_[group_name];
int rv = RequestSocketInternal(group_name, request);
- if (rv != ERR_IO_PENDING)
+ if (rv != ERR_IO_PENDING) {
request->net_log().EndEvent(NetLog::TYPE_SOCKET_POOL, NULL);
- else
+ delete request;
+ } else {
InsertRequestIntoQueue(request, &group.pending_requests);
+ }
return rv;
}
@@ -654,21 +656,18 @@ void ClientSocketPoolBaseHelper::OnAvailableSocketSlot(
void ClientSocketPoolBaseHelper::ProcessPendingRequest(
const std::string& group_name, Group* group) {
- scoped_ptr<const Request> r(*group->pending_requests.begin());
- int rv = RequestSocketInternal(group_name, r.get());
+ int rv = RequestSocketInternal(group_name, *group->pending_requests.begin());
if (rv != ERR_IO_PENDING) {
+ scoped_ptr<const Request> r(RemoveRequestFromQueue(
+ group->pending_requests.begin(), &group->pending_requests));
r->net_log().EndEvent(NetLog::TYPE_SOCKET_POOL, NULL);
- RemoveRequestFromQueue(group->pending_requests.begin(),
- &group->pending_requests);
r->callback()->Run(rv);
if (rv != OK) {
// |group| may be invalid after the callback, we need to search
// |group_map_| again.
MaybeOnAvailableSocketSlot(group_name);
}
- } else {
- r.release();
}
}