Chromium Code Reviews| Index: base/process/memory_mac.mm |
| diff --git a/base/process/memory_mac.mm b/base/process/memory_mac.mm |
| index 3e281cd8e3ca355ae5b2eb0581acb1c3bafbb71b..c42f4f750e3f968869d5848e96ea7abc651c87aa 100644 |
| --- a/base/process/memory_mac.mm |
| +++ b/base/process/memory_mac.mm |
| @@ -502,26 +502,44 @@ id oom_killer_allocWithZone(id self, SEL _cmd, NSZone* zone) |
| } // namespace |
| -void* UncheckedMalloc(size_t size) { |
| +bool UncheckedMalloc(size_t size, void** result) { |
| if (g_old_malloc) { |
| #if ARCH_CPU_32_BITS |
| ScopedClearErrno clear_errno; |
| ThreadLocalBooleanAutoReset flag(g_unchecked_alloc.Pointer(), true); |
| #endif // ARCH_CPU_32_BITS |
| - return g_old_malloc(malloc_default_zone(), size); |
| + return *result = g_old_malloc(malloc_default_zone(), size); |
|
Scott Hess - ex-Googler
2014/03/13 23:18:45
No return here to be consistent with else case.
kbalazs
2014/03/18 20:03:54
Done.
|
| + } else { |
| + *result = malloc(size); |
| } |
| - return malloc(size); |
| + |
| + return *result; |
|
Scott Hess - ex-Googler
2014/03/13 23:18:45
!= NULL to be consistent with calloc (and other pl
kbalazs
2014/03/18 20:03:54
Done.
|
| } |
| -void* UncheckedCalloc(size_t num_items, size_t size) { |
| +bool UncheckedCalloc(size_t num_items, size_t size, void** result) { |
| if (g_old_calloc) { |
| #if ARCH_CPU_32_BITS |
| ScopedClearErrno clear_errno; |
| ThreadLocalBooleanAutoReset flag(g_unchecked_alloc.Pointer(), true); |
| #endif // ARCH_CPU_32_BITS |
| - return g_old_calloc(malloc_default_zone(), num_items, size); |
| + *result = g_old_calloc(malloc_default_zone(), num_items, size); |
| + } else { |
| + *result = calloc(num_items, size); |
| } |
| - return calloc(num_items, size); |
| + |
| + return *result != NULL; |
| +} |
| + |
| +void* UncheckedMalloc(size_t size) { |
| + void* address; |
| + bool result ALLOW_UNUSED = UncheckedMalloc(size, &address); |
|
Scott Hess - ex-Googler
2014/03/13 23:18:45
Is |address| guaranteed to be initialized to NULL?
kbalazs
2014/03/18 20:03:54
Done.
|
| + return address; |
| +} |
| + |
| +void* UncheckedCalloc(size_t num_items, size_t size) { |
| + void* address; |
| + bool result ALLOW_UNUSED = UncheckedCalloc(num_items, size, &address); |
| + return address; |
| } |
| void EnableTerminationOnOutOfMemory() { |