Index: net/disk_cache/simple/simple_entry_impl.cc |
diff --git a/net/disk_cache/simple/simple_entry_impl.cc b/net/disk_cache/simple/simple_entry_impl.cc |
index d817cdeda3d22ca3e093e643e9bb0c373a8149c0..409bc5142659b9e19ab1355edb0498f647ad2e80 100644 |
--- a/net/disk_cache/simple/simple_entry_impl.cc |
+++ b/net/disk_cache/simple/simple_entry_impl.cc |
@@ -143,7 +143,8 @@ int SimpleEntryImpl::ReadData(int index, |
index_->UseIfExists(key_); |
SynchronousOperationCallback sync_operation_callback = |
base::Bind(&SimpleEntryImpl::EntryOperationComplete, |
- callback, weak_ptr_factory_.GetWeakPtr(), synchronous_entry_); |
+ index_, callback, weak_ptr_factory_.GetWeakPtr(), |
+ synchronous_entry_); |
WorkerPool::PostTask(FROM_HERE, |
base::Bind(&SimpleSynchronousEntry::ReadData, |
base::Unretained(synchronous_entry_), |
@@ -167,7 +168,8 @@ int SimpleEntryImpl::WriteData(int index, |
index_->UseIfExists(key_); |
SynchronousOperationCallback sync_operation_callback = |
base::Bind(&SimpleEntryImpl::EntryOperationComplete, |
- callback, weak_ptr_factory_.GetWeakPtr(), synchronous_entry_); |
+ index_, callback, weak_ptr_factory_.GetWeakPtr(), |
+ synchronous_entry_); |
WorkerPool::PostTask(FROM_HERE, |
base::Bind(&SimpleSynchronousEntry::WriteData, |
base::Unretained(synchronous_entry_), |
@@ -258,10 +260,14 @@ void SimpleEntryImpl::CreationOperationComplete( |
// static |
void SimpleEntryImpl::EntryOperationComplete( |
+ base::WeakPtr<SimpleIndex> index, |
const CompletionCallback& completion_callback, |
base::WeakPtr<SimpleEntryImpl> entry, |
SimpleSynchronousEntry* sync_entry, |
int result) { |
+ if (sync_entry && index) |
gavinp
2013/04/09 16:42:57
sync_entry should always be non NULL, I think. So
felipeg
2013/04/09 16:46:58
Done.
|
+ index->UpdateEntrySize(sync_entry->key(), sync_entry->GetFileSize()); |
+ |
if (entry) { |
DCHECK(entry->synchronous_entry_in_use_by_worker_); |
entry->synchronous_entry_in_use_by_worker_ = false; |