Index: content/child/child_discardable_shared_memory_manager.cc |
diff --git a/content/child/child_discardable_shared_memory_manager.cc b/content/child/child_discardable_shared_memory_manager.cc |
index 14dfe97e7df975420594e4de8ed44e358451f88d..e7a12ab87f1e45351e7674c6d55e766d02b75d46 100644 |
--- a/content/child/child_discardable_shared_memory_manager.cc |
+++ b/content/child/child_discardable_shared_memory_manager.cc |
@@ -71,17 +71,20 @@ class DiscardableMemoryImpl : public base::DiscardableMemory { |
DISALLOW_COPY_AND_ASSIGN(DiscardableMemoryImpl); |
}; |
+void SendDeletedDiscardableSharedMemoryMessage( |
+ scoped_refptr<ThreadSafeSender> sender, |
+ DiscardableSharedMemoryId id) { |
+ sender->Send(new ChildProcessHostMsg_DeletedDiscardableSharedMemory(id)); |
+} |
+ |
} // namespace |
ChildDiscardableSharedMemoryManager::ChildDiscardableSharedMemoryManager( |
ThreadSafeSender* sender) |
- : heap_(base::GetPageSize()), sender_(sender), weak_ptr_factory_(this) { |
+ : heap_(base::GetPageSize()), sender_(sender) { |
} |
ChildDiscardableSharedMemoryManager::~ChildDiscardableSharedMemoryManager() { |
- // Cancel all DeletedDiscardableSharedMemory callbacks. |
- weak_ptr_factory_.InvalidateWeakPtrs(); |
- |
// TODO(reveman): Determine if this DCHECK can be enabled. crbug.com/430533 |
// DCHECK_EQ(heap_.GetSize(), heap_.GetSizeOfFreeLists()); |
if (heap_.GetSize()) |
@@ -167,9 +170,7 @@ ChildDiscardableSharedMemoryManager::AllocateLockedDiscardableMemory( |
// Create span for allocated memory. |
scoped_ptr<DiscardableSharedMemoryHeap::Span> new_span(heap_.Grow( |
shared_memory.Pass(), allocation_size_in_bytes, |
- base::Bind( |
- &ChildDiscardableSharedMemoryManager::DeletedDiscardableSharedMemory, |
- weak_ptr_factory_.GetWeakPtr(), new_id))); |
+ base::Bind(&SendDeletedDiscardableSharedMemoryMessage, sender_, new_id))); |
// Unlock and insert any left over memory into free lists. |
if (pages < pages_to_allocate) { |
@@ -271,11 +272,6 @@ ChildDiscardableSharedMemoryManager::AllocateLockedDiscardableSharedMemory( |
return memory.Pass(); |
} |
-void ChildDiscardableSharedMemoryManager::DeletedDiscardableSharedMemory( |
- DiscardableSharedMemoryId id) { |
- sender_->Send(new ChildProcessHostMsg_DeletedDiscardableSharedMemory(id)); |
-} |
- |
void ChildDiscardableSharedMemoryManager::MemoryUsageChanged( |
size_t new_bytes_total, |
size_t new_bytes_free) const { |