diff options
author | avi@chromium.org <avi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-17 13:51:52 +0000 |
---|---|---|
committer | avi@chromium.org <avi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-17 13:51:52 +0000 |
commit | 73a964f0facc033d3ff6d08616f06d16850b37c2 (patch) | |
tree | 68eed96fda585e9d603f6c27351dad9767ed64ac /base/process_util_unittest_mac.mm | |
parent | 25f1cae9d3c9e2fb29ea0546ca8adda710818bd3 (diff) | |
download | chromium_src-73a964f0facc033d3ff6d08616f06d16850b37c2.zip chromium_src-73a964f0facc033d3ff6d08616f06d16850b37c2.tar.gz chromium_src-73a964f0facc033d3ff6d08616f06d16850b37c2.tar.bz2 |
Die on an OOM situation in many more cases.
BUG=http://crbug.com/12673
TEST=run out of memory and die
Review URL: http://codereview.chromium.org/875004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@41834 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/process_util_unittest_mac.mm')
-rw-r--r-- | base/process_util_unittest_mac.mm | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/base/process_util_unittest_mac.mm b/base/process_util_unittest_mac.mm new file mode 100644 index 0000000..015227a --- /dev/null +++ b/base/process_util_unittest_mac.mm @@ -0,0 +1,45 @@ +// Copyright (c) 2010 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_util_unittest_mac.h" + +#import <Cocoa/Cocoa.h> + +@interface PsychoticallyBigObjCObject : NSObject +{ +#if __LP64__ + // On 64 bits, Objective C objects have no size limit that I can find. + int tooBigToCount_[0xF000000000000000U / sizeof(int)]; +#else + // On 32 bits, Objective C objects must be < 2G in size. + int justUnder2Gigs_[(2U * 1024 * 1024 * 1024 - 1) / sizeof(int)]; +#endif +} + +@end + +@implementation PsychoticallyBigObjCObject + +@end + + +namespace base { + +void* AllocateViaCFAllocatorSystemDefault(int32 size) { + return CFAllocatorAllocate(kCFAllocatorSystemDefault, size, 0); +} + +void* AllocateViaCFAllocatorMalloc(int32 size) { + return CFAllocatorAllocate(kCFAllocatorMalloc, size, 0); +} + +void* AllocateViaCFAllocatorMallocZone(int32 size) { + return CFAllocatorAllocate(kCFAllocatorMallocZone, size, 0); +} + +void* AllocatePsychoticallyBigObjCObject() { + return [[PsychoticallyBigObjCObject alloc] init]; +} + +} // namespace base |