Index: components/discardable_memory/service/discardable_shared_memory_manager.cc |
diff --git a/components/discardable_memory/service/discardable_shared_memory_manager.cc b/components/discardable_memory/service/discardable_shared_memory_manager.cc |
index 1036dc84d697ed5324d2f181a15b7b618cdddf46..7351d123c61988add308b58c7295985a7b49cf9a 100644 |
--- a/components/discardable_memory/service/discardable_shared_memory_manager.cc |
+++ b/components/discardable_memory/service/discardable_shared_memory_manager.cc |
@@ -213,15 +213,13 @@ std::unique_ptr<base::DiscardableMemory> |
DiscardableSharedMemoryManager::AllocateLockedDiscardableMemory(size_t size) { |
DCHECK_NE(size, 0u); |
- DiscardableSharedMemoryId new_id = |
- g_next_discardable_shared_memory_id.GetNext(); |
- base::ProcessHandle current_process_handle = base::GetCurrentProcessHandle(); |
+ int32_t new_id = g_next_discardable_shared_memory_id.GetNext(); |
// Note: Use DiscardableSharedMemoryHeap for in-process allocation |
// of discardable memory if the cost of each allocation is too high. |
base::SharedMemoryHandle handle; |
- AllocateLockedDiscardableSharedMemory( |
- current_process_handle, kInvalidUniqueClientID, size, new_id, &handle); |
+ AllocateLockedDiscardableSharedMemory(kInvalidUniqueClientID, size, new_id, |
+ &handle); |
std::unique_ptr<base::DiscardableSharedMemory> memory( |
new base::DiscardableSharedMemory(handle)); |
if (!memory->Map(size)) |
@@ -308,17 +306,16 @@ bool DiscardableSharedMemoryManager::OnMemoryDump( |
void DiscardableSharedMemoryManager:: |
AllocateLockedDiscardableSharedMemoryForClient( |
- base::ProcessHandle process_handle, |
int client_id, |
size_t size, |
- DiscardableSharedMemoryId id, |
+ int32_t id, |
base::SharedMemoryHandle* shared_memory_handle) { |
- AllocateLockedDiscardableSharedMemory(process_handle, client_id, size, id, |
+ AllocateLockedDiscardableSharedMemory(client_id, size, id, |
shared_memory_handle); |
} |
void DiscardableSharedMemoryManager::ClientDeletedDiscardableSharedMemory( |
- DiscardableSharedMemoryId id, |
+ int32_t id, |
int client_id) { |
DeletedDiscardableSharedMemory(id, client_id); |
} |
@@ -380,10 +377,9 @@ void DiscardableSharedMemoryManager::OnMemoryStateChange( |
} |
void DiscardableSharedMemoryManager::AllocateLockedDiscardableSharedMemory( |
- base::ProcessHandle process_handle, |
int client_id, |
size_t size, |
- DiscardableSharedMemoryId id, |
+ int32_t id, |
base::SharedMemoryHandle* shared_memory_handle) { |
base::AutoLock lock(lock_); |
@@ -416,11 +412,7 @@ void DiscardableSharedMemoryManager::AllocateLockedDiscardableSharedMemory( |
return; |
} |
- if (!memory->ShareToProcess(process_handle, shared_memory_handle)) { |
- LOG(ERROR) << "Cannot share discardable memory segment"; |
- *shared_memory_handle = base::SharedMemory::NULLHandle(); |
- return; |
- } |
+ *shared_memory_handle = base::SharedMemory::DuplicateHandle(memory->handle()); |
// Close file descriptor to avoid running out. |
memory->Close(); |
@@ -445,7 +437,7 @@ void DiscardableSharedMemoryManager::AllocateLockedDiscardableSharedMemory( |
} |
void DiscardableSharedMemoryManager::DeletedDiscardableSharedMemory( |
- DiscardableSharedMemoryId id, |
+ int32_t id, |
int client_id) { |
base::AutoLock lock(lock_); |