summaryrefslogtreecommitdiff
path: root/chromium/components/discardable_memory/client/client_discardable_shared_memory_manager.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/components/discardable_memory/client/client_discardable_shared_memory_manager.cc')
-rw-r--r--chromium/components/discardable_memory/client/client_discardable_shared_memory_manager.cc24
1 files changed, 10 insertions, 14 deletions
diff --git a/chromium/components/discardable_memory/client/client_discardable_shared_memory_manager.cc b/chromium/components/discardable_memory/client/client_discardable_shared_memory_manager.cc
index 337e1eb9e13..2cd5e0e5b1f 100644
--- a/chromium/components/discardable_memory/client/client_discardable_shared_memory_manager.cc
+++ b/chromium/components/discardable_memory/client/client_discardable_shared_memory_manager.cc
@@ -25,7 +25,6 @@
#include "base/trace_event/memory_dump_manager.h"
#include "base/trace_event/trace_event.h"
#include "components/crash/core/common/crash_key.h"
-#include "mojo/public/cpp/system/platform_handle.h"
namespace discardable_memory {
namespace {
@@ -168,7 +167,7 @@ ClientDiscardableSharedMemoryManager::AllocateLockedDiscardableMemory(
// Search free lists for suitable span.
std::unique_ptr<DiscardableSharedMemoryHeap::Span> free_span =
heap_->SearchFreeLists(pages, slack);
- if (!free_span.get())
+ if (!free_span)
break;
// Attempt to lock |free_span|. Delete span and search free lists again
@@ -357,7 +356,7 @@ ClientDiscardableSharedMemoryManager::AllocateLockedDiscardableSharedMemory(
"ClientDiscardableSharedMemoryManager::"
"AllocateLockedDiscardableSharedMemory",
"size", size, "id", id);
- base::SharedMemoryHandle handle;
+ base::UnsafeSharedMemoryRegion region;
base::WaitableEvent event(base::WaitableEvent::ResetPolicy::MANUAL,
base::WaitableEvent::InitialState::NOT_SIGNALED);
base::ScopedClosureRunner event_signal_runner(
@@ -365,11 +364,12 @@ ClientDiscardableSharedMemoryManager::AllocateLockedDiscardableSharedMemory(
io_task_runner_->PostTask(
FROM_HERE,
base::BindOnce(&ClientDiscardableSharedMemoryManager::AllocateOnIO,
- base::Unretained(this), size, id, &handle,
+ base::Unretained(this), size, id, &region,
std::move(event_signal_runner)));
// Waiting until IPC has finished on the IO thread.
event.Wait();
- auto memory = std::make_unique<base::DiscardableSharedMemory>(handle);
+ auto memory =
+ std::make_unique<base::DiscardableSharedMemory>(std::move(region));
if (!memory->Map(size))
base::TerminateBecauseOutOfMemory(size);
return memory;
@@ -378,25 +378,21 @@ ClientDiscardableSharedMemoryManager::AllocateLockedDiscardableSharedMemory(
void ClientDiscardableSharedMemoryManager::AllocateOnIO(
size_t size,
int32_t id,
- base::SharedMemoryHandle* handle,
+ base::UnsafeSharedMemoryRegion* region,
base::ScopedClosureRunner closure_runner) {
(*manager_mojo_)
->AllocateLockedDiscardableSharedMemory(
static_cast<uint32_t>(size), id,
base::BindOnce(
&ClientDiscardableSharedMemoryManager::AllocateCompletedOnIO,
- base::Unretained(this), handle, std::move(closure_runner)));
+ base::Unretained(this), region, std::move(closure_runner)));
}
void ClientDiscardableSharedMemoryManager::AllocateCompletedOnIO(
- base::SharedMemoryHandle* handle,
+ base::UnsafeSharedMemoryRegion* region,
base::ScopedClosureRunner closure_runner,
- mojo::ScopedSharedBufferHandle mojo_handle) {
- if (!mojo_handle.is_valid())
- return;
- auto result = mojo::UnwrapSharedMemoryHandle(std::move(mojo_handle), handle,
- nullptr, nullptr);
- DCHECK_EQ(result, MOJO_RESULT_OK);
+ base::UnsafeSharedMemoryRegion ret_region) {
+ *region = std::move(ret_region);
}
void ClientDiscardableSharedMemoryManager::DeletedDiscardableSharedMemory(