|  | // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | #include "base/process/memory.h" | 
|  |  | 
|  | #include <stddef.h> | 
|  | #include <stdlib.h> | 
|  |  | 
|  | namespace base { | 
|  |  | 
|  | void EnableTerminationOnOutOfMemory() { | 
|  | } | 
|  |  | 
|  | void EnableTerminationOnHeapCorruption() { | 
|  | } | 
|  |  | 
|  | bool AdjustOOMScore(ProcessId process, int score) { | 
|  | return false; | 
|  | } | 
|  |  | 
|  | void TerminateBecauseOutOfMemory(size_t size) { | 
|  | abort(); | 
|  | } | 
|  |  | 
|  | // UncheckedMalloc and Calloc exist so that platforms making use of | 
|  | // EnableTerminationOnOutOfMemory have a way to allocate memory without | 
|  | // crashing. This _stubs.cc file is for platforms that do not support | 
|  | // EnableTerminationOnOutOfMemory (note the empty implementation above). As | 
|  | // such, these two Unchecked.alloc functions need only trivially pass-through to | 
|  | // their respective stdlib function since those functions will return null on a | 
|  | // failure to allocate. | 
|  |  | 
|  | bool UncheckedMalloc(size_t size, void** result) { | 
|  | *result = malloc(size); | 
|  | return *result != nullptr; | 
|  | } | 
|  |  | 
|  | bool UncheckedCalloc(size_t num_items, size_t size, void** result) { | 
|  | *result = calloc(num_items, size); | 
|  | return *result != nullptr; | 
|  | } | 
|  |  | 
|  | }  // namespace base |