xref: /aosp_15_r20/external/libchrome/base/process/memory_stubs.cc (revision 635a864187cb8b6c713ff48b7e790a6b21769273)
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