diff --git a/skia/ext/SkDiscardableMemory_chrome.cc b/skia/ext/SkDiscardableMemory_chrome.cc index 90adda1ea0b89f..3a56127b7a998f 100644 --- a/skia/ext/SkDiscardableMemory_chrome.cc +++ b/skia/ext/SkDiscardableMemory_chrome.cc @@ -8,6 +8,7 @@ #include +#include "base/bind_helpers.h" #include "base/memory/discardable_memory.h" #include "base/memory/discardable_memory_allocator.h" @@ -37,7 +38,10 @@ SkDiscardableMemoryChrome::CreateMemoryAllocatorDump( } SkDiscardableMemory* SkDiscardableMemory::Create(size_t bytes) { - return new SkDiscardableMemoryChrome( - base::DiscardableMemoryAllocator::GetInstance() - ->AllocateLockedDiscardableMemory(bytes)); + // TODO(crbug.com/1034271): Make the caller handle a nullptr return value, + // and do not die when the allocation fails. + auto discardable = base::DiscardableMemoryAllocator::GetInstance() + ->AllocateLockedDiscardableMemoryWithRetryOrDie( + bytes, base::DoNothing()); + return new SkDiscardableMemoryChrome(std::move(discardable)); }