1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "base/process/memory.h"
6
7 #include <stddef.h>
8 #include <stdlib.h>
9
10 namespace base {
11
EnableTerminationOnOutOfMemory()12 void EnableTerminationOnOutOfMemory() {
13 }
14
EnableTerminationOnHeapCorruption()15 void EnableTerminationOnHeapCorruption() {
16 }
17
AdjustOOMScore(ProcessId process,int score)18 bool AdjustOOMScore(ProcessId process, int score) {
19 return false;
20 }
21
TerminateBecauseOutOfMemory(size_t size)22 void TerminateBecauseOutOfMemory(size_t size) {
23 abort();
24 }
25
26 // UncheckedMalloc and Calloc exist so that platforms making use of
27 // EnableTerminationOnOutOfMemory have a way to allocate memory without
28 // crashing. This _stubs.cc file is for platforms that do not support
29 // EnableTerminationOnOutOfMemory (note the empty implementation above). As
30 // such, these two Unchecked.alloc functions need only trivially pass-through to
31 // their respective stdlib function since those functions will return null on a
32 // failure to allocate.
33
UncheckedMalloc(size_t size,void ** result)34 bool UncheckedMalloc(size_t size, void** result) {
35 *result = malloc(size);
36 return *result != nullptr;
37 }
38
UncheckedCalloc(size_t num_items,size_t size,void ** result)39 bool UncheckedCalloc(size_t num_items, size_t size, void** result) {
40 *result = calloc(num_items, size);
41 return *result != nullptr;
42 }
43
44 } // namespace base
45