| Index: net/disk_cache/block_files.cc
|
| ===================================================================
|
| --- net/disk_cache/block_files.cc (revision 22968)
|
| +++ net/disk_cache/block_files.cc (working copy)
|
| @@ -237,24 +237,18 @@
|
| }
|
|
|
| std::wstring name = Name(index);
|
| - MappedFile* file = new MappedFile();
|
| - file->AddRef();
|
| + scoped_refptr<MappedFile> file(new MappedFile());
|
|
|
| if (!file->Init(name, kBlockHeaderSize)) {
|
| - NOTREACHED();
|
| LOG(ERROR) << "Failed to open " << name;
|
| - file->Release();
|
| return false;
|
| }
|
|
|
| if (file->GetLength() < static_cast<size_t>(kBlockHeaderSize)) {
|
| LOG(ERROR) << "File too small " << name;
|
| - file->Release();
|
| return false;
|
| }
|
|
|
| - block_files_[index] = file;
|
| -
|
| BlockFileHeader* header = reinterpret_cast<BlockFileHeader*>(file->buffer());
|
| if (kBlockMagic != header->magic || kCurrentVersion != header->version) {
|
| LOG(ERROR) << "Invalid file version or magic";
|
| @@ -266,6 +260,9 @@
|
| if (!FixBlockFileHeader(file))
|
| return false;
|
| }
|
| +
|
| + DCHECK(!block_files_[index]);
|
| + file.swap(&block_files_[index]);
|
| return true;
|
| }
|
|
|
|
|