summaryrefslogtreecommitdiffstats
path: root/net/disk_cache
diff options
context:
space:
mode:
Diffstat (limited to 'net/disk_cache')
-rw-r--r--net/disk_cache/disk_cache.h13
-rw-r--r--net/disk_cache/entry_impl.cc10
2 files changed, 11 insertions, 12 deletions
diff --git a/net/disk_cache/disk_cache.h b/net/disk_cache/disk_cache.h
index 48b7ba5..3ea3b25 100644
--- a/net/disk_cache/disk_cache.h
+++ b/net/disk_cache/disk_cache.h
@@ -160,9 +160,8 @@ class Entry {
// not base::kInvalidPlatformFileValue), there is no guarantee that the file
// is truncated. Implementor can always return base::kInvalidPlatformFileValue
// if external file is not available in that particular implementation.
- // Caller should never close the file handle returned by this method, since
- // the handle should be managed by the implementor of this class. Caller
- // should never save the handle for future use.
+ // The caller should close the file handle returned by this method or there
+ // will be a leak.
// With a stream prepared as an external file, the stream would always be
// kept in an external file since creation, even if the stream has 0 bytes.
// So we need to be cautious about using this option for preparing a stream or
@@ -171,10 +170,10 @@ class Entry {
// directly *without* buffering.
virtual base::PlatformFile UseExternalFile(int index) = 0;
- // Returns a read file handle for the cache stream referenced by |index|.
- // Caller should never close the handle returned by this method and should
- // not save it for future use. The lifetime of the base::PlatformFile handle
- // is managed by the implementor of this class.
+ // Returns an asynchronous read file handle for the cache stream referenced by
+ // |index|. Values other than base::kInvalidPlatformFileValue are successful
+ // and the file handle should be managed by the caller, i.e. caller should
+ // close the handle after use or there will be a leak.
virtual base::PlatformFile GetPlatformFile(int index) = 0;
protected:
diff --git a/net/disk_cache/entry_impl.cc b/net/disk_cache/entry_impl.cc
index 361a7ee..446138e 100644
--- a/net/disk_cache/entry_impl.cc
+++ b/net/disk_cache/entry_impl.cc
@@ -379,11 +379,11 @@ base::PlatformFile EntryImpl::GetPlatformFile(int index) {
if (!address.is_initialized() || !address.is_separate_file())
return base::kInvalidPlatformFileValue;
- File* cache_file = GetExternalFile(address, index);
- if (!cache_file)
- return base::kInvalidPlatformFileValue;
-
- return cache_file->platform_file();
+ return base::CreatePlatformFile(backend_->GetFileName(address),
+ base::PLATFORM_FILE_OPEN |
+ base::PLATFORM_FILE_READ |
+ base::PLATFORM_FILE_ASYNC,
+ NULL);
}
uint32 EntryImpl::GetHash() {