summaryrefslogtreecommitdiffstats
path: root/net/disk_cache
diff options
context:
space:
mode:
authorrvargas@google.com <rvargas@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-15 19:28:13 +0000
committerrvargas@google.com <rvargas@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-15 19:28:13 +0000
commitf6c9d56c4b81eb282e591cc079622697ed99b5ed (patch)
treeac9df136560b7d980a6069c9c3ad6242e9af3c54 /net/disk_cache
parent000e5e50320090d35b164c2bf1ac4c5f3c83a825 (diff)
downloadchromium_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')
-rw-r--r--net/disk_cache/entry_unittest.cc20
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();