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() { |