diff options
author | rvargas@google.com <rvargas@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-15 19:28:13 +0000 |
---|---|---|
committer | rvargas@google.com <rvargas@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-15 19:28:13 +0000 |
commit | f6c9d56c4b81eb282e591cc079622697ed99b5ed (patch) | |
tree | ac9df136560b7d980a6069c9c3ad6242e9af3c54 /net/disk_cache/entry_unittest.cc | |
parent | 000e5e50320090d35b164c2bf1ac4c5f3c83a825 (diff) | |
download | chromium_src-f6c9d56c4b81eb282e591cc079622697ed99b5ed.zip chromium_src-f6c9d56c4b81eb282e591cc079622697ed99b5ed.tar.gz chromium_src-f6c9d56c4b81eb282e591cc079622697ed99b5ed.tar.bz2 |
Http Cache: Release all references to buffers before invoking callbacks.
BUG=131272
TEST=net_unittests
Review URL: https://codereview.chromium.org/11854020
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@176951 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/disk_cache/entry_unittest.cc')
-rw-r--r-- | net/disk_cache/entry_unittest.cc | 20 |
1 files changed, 1 insertions, 19 deletions
diff --git a/net/disk_cache/entry_unittest.cc b/net/disk_cache/entry_unittest.cc index 7a581bd..6438f2e 100644 --- a/net/disk_cache/entry_unittest.cc +++ b/net/disk_cache/entry_unittest.cc @@ -510,24 +510,6 @@ TEST_F(DiskCacheEntryTest, MemoryOnlyExternalAsyncIO) { ExternalAsyncIO(); } -// Makes sure that the buffer is not referenced when the callback runs. -class ReleaseBufferCompletionCallback: public net::TestCompletionCallback { - public: - explicit ReleaseBufferCompletionCallback(net::IOBuffer* buffer) - : buffer_(buffer) { - } - - private: - virtual void SetResult(int result) OVERRIDE { - if (!buffer_->HasOneRef()) - result = net::ERR_FAILED; - TestCompletionCallback::SetResult(result); - } - - net::IOBuffer* buffer_; - DISALLOW_COPY_AND_ASSIGN(ReleaseBufferCompletionCallback); -}; - // Tests that IOBuffers are not referenced after IO completes. void DiskCacheEntryTest::ReleaseBuffer() { disk_cache::Entry* entry = NULL; @@ -538,7 +520,7 @@ void DiskCacheEntryTest::ReleaseBuffer() { scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(kBufferSize)); CacheTestFillBuffer(buffer->data(), kBufferSize, false); - ReleaseBufferCompletionCallback cb(buffer); + net::ReleaseBufferCompletionCallback cb(buffer); int rv = entry->WriteData(0, 0, buffer, kBufferSize, cb.callback(), false); EXPECT_EQ(kBufferSize, cb.GetResult(rv)); entry->Close(); |