summaryrefslogtreecommitdiffstats
path: root/net/proxy/sync_host_resolver_bridge_unittest.cc
diff options
context:
space:
mode:
authorwillchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-01 23:57:54 +0000
committerwillchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-01 23:57:54 +0000
commit73c4532bd7f5b84bc822a4acca5c5b8affef4129 (patch)
treedc2a525aab1bda568b52ea78e72c8be79b9165dc /net/proxy/sync_host_resolver_bridge_unittest.cc
parent3209e71131849f3e0d513cd3fd8dca881f05d531 (diff)
downloadchromium_src-73c4532bd7f5b84bc822a4acca5c5b8affef4129.zip
chromium_src-73c4532bd7f5b84bc822a4acca5c5b8affef4129.tar.gz
chromium_src-73c4532bd7f5b84bc822a4acca5c5b8affef4129.tar.bz2
Stop refcounting HostResolver.
BUG=46049 TEST=none Review URL: http://codereview.chromium.org/3601002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61256 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/proxy/sync_host_resolver_bridge_unittest.cc')
-rw-r--r--net/proxy/sync_host_resolver_bridge_unittest.cc21
1 files changed, 10 insertions, 11 deletions
diff --git a/net/proxy/sync_host_resolver_bridge_unittest.cc b/net/proxy/sync_host_resolver_bridge_unittest.cc
index c10c3e6..cd4264e 100644
--- a/net/proxy/sync_host_resolver_bridge_unittest.cc
+++ b/net/proxy/sync_host_resolver_bridge_unittest.cc
@@ -116,22 +116,23 @@ class SyncProxyResolver : public ProxyResolver {
}
private:
- scoped_refptr<SyncHostResolverBridge> host_resolver_;
+ SyncHostResolverBridge* const host_resolver_;
};
class SyncProxyResolverFactory : public ProxyResolverFactory {
public:
+ // Takes ownership of |sync_host_resolver|.
explicit SyncProxyResolverFactory(SyncHostResolverBridge* sync_host_resolver)
: ProxyResolverFactory(false),
sync_host_resolver_(sync_host_resolver) {
}
virtual ProxyResolver* CreateProxyResolver() {
- return new SyncProxyResolver(sync_host_resolver_);
+ return new SyncProxyResolver(sync_host_resolver_.get());
}
private:
- scoped_refptr<SyncHostResolverBridge> sync_host_resolver_;
+ const scoped_ptr<SyncHostResolverBridge> sync_host_resolver_;
};
// This helper thread is used to create the circumstances for the deadlock.
@@ -145,18 +146,18 @@ class IOThread : public base::Thread {
Stop();
}
- const scoped_refptr<BlockableHostResolver>& async_resolver() {
- return async_resolver_;
+ BlockableHostResolver* async_resolver() {
+ return async_resolver_.get();
}
protected:
virtual void Init() {
- async_resolver_ = new BlockableHostResolver();
+ async_resolver_.reset(new BlockableHostResolver());
// Create a synchronous host resolver that operates the async host
// resolver on THIS thread.
- scoped_refptr<SyncHostResolverBridge> sync_resolver =
- new SyncHostResolverBridge(async_resolver_, message_loop());
+ SyncHostResolverBridge* sync_resolver =
+ new SyncHostResolverBridge(async_resolver_.get(), message_loop());
proxy_resolver_.reset(
new MultiThreadedProxyResolver(
@@ -190,14 +191,12 @@ class IOThread : public base::Thread {
// During the teardown sequence of the single threaded proxy resolver,
// the outstanding host resolve should have been cancelled.
EXPECT_TRUE(async_resolver_->was_request_cancelled());
-
- async_resolver_ = NULL;
}
private:
// This (async) host resolver will outlive the thread that is operating it
// synchronously.
- scoped_refptr<BlockableHostResolver> async_resolver_;
+ scoped_ptr<BlockableHostResolver> async_resolver_;
scoped_ptr<ProxyResolver> proxy_resolver_;