| Index: third_party/apple_apsl/CFBase.h
|
| diff --git a/third_party/apple_apsl/CFBase.h b/third_party/apple_apsl/CFBase.h
|
| index 7942966840aea72a00c4b2ade808676136ab6b62..f7ecaf6c916a44185158dd07df7d0c3e1a068de5 100644
|
| --- a/third_party/apple_apsl/CFBase.h
|
| +++ b/third_party/apple_apsl/CFBase.h
|
| @@ -1,5 +1,5 @@
|
| /*
|
| - * Copyright (c) 2009 Apple Inc. All rights reserved.
|
| + * Copyright (c) 2011 Apple Inc. All rights reserved.
|
| *
|
| * @APPLE_LICENSE_HEADER_START@
|
| *
|
| @@ -21,7 +21,7 @@
|
| * @APPLE_LICENSE_HEADER_END@
|
| */
|
| /* CFBase.c
|
| - Copyright (c) 1998-2009, Apple Inc. All rights reserved.
|
| + Copyright (c) 1998-2011, Apple Inc. All rights reserved.
|
| Responsibility: Christopher Kane
|
| */
|
|
|
| @@ -50,29 +50,33 @@ struct ChromeCFAllocatorLeopards {
|
| CFAllocatorContext _context;
|
| };
|
|
|
| -// TODO(avi): update upon source release; http://crbug.com/74589
|
| struct ChromeCFAllocatorLion {
|
| - ChromeCFRuntimeBase _base;
|
| - // CFAllocator in Darwin 9 included a complete copy of _malloc_zone_t. The
|
| - // version in Darwin 10 had an abbreviated _malloc_zone_t that ended after the
|
| - // version/"reserved" field (see above). Darwin 11 appears to have a truncated
|
| - // _malloc_zone_t as well, but two fields larger than 9/10.
|
| - void* presumedSizeFunctionPtr;
|
| - void* presumedMallocFunctionPtr;
|
| - void* presumedCallocFunctionPtr;
|
| - void* presumedVallocFunctionPtr;
|
| - void* presumedFreeFunctionPtr;
|
| - void* presumedReallocFunctionPtr;
|
| - void* presumedDestroyFunctionPtr;
|
| - const char *zone_name;
|
| - void* presumedBatchMallocFunctionPtr;
|
| - void* presumedBatchFreeFunctionPtr;
|
| - void* presumedIntrospectStructPtr;
|
| - void* presumedReservedSlashVersion; // always 6 in CFAllocators
|
| - void* presumedMemalignFunctionPtr;
|
| - void* presumedFreeDefiniteSizeFunctionPtr;
|
| - CFAllocatorRef _allocator;
|
| - CFAllocatorContext _context;
|
| + ChromeCFRuntimeBase _base;
|
| +#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED
|
| + size_t (*size)(struct _malloc_zone_t *zone, const void *ptr); /* returns the size of a block or 0 if not in this zone; must be fast, especially for negative answers */
|
| + void *(*malloc)(struct _malloc_zone_t *zone, size_t size);
|
| + void *(*calloc)(struct _malloc_zone_t *zone, size_t num_items, size_t size); /* same as malloc, but block returned is set to zero */
|
| + void *(*valloc)(struct _malloc_zone_t *zone, size_t size); /* same as malloc, but block returned is set to zero and is guaranteed to be page aligned */
|
| + void (*free)(struct _malloc_zone_t *zone, void *ptr);
|
| + void *(*realloc)(struct _malloc_zone_t *zone, void *ptr, size_t size);
|
| + void (*destroy)(struct _malloc_zone_t *zone); /* zone is destroyed and all memory reclaimed */
|
| + const char *zone_name;
|
| +
|
| + /* Optional batch callbacks; these may be NULL */
|
| + unsigned (*batch_malloc)(struct _malloc_zone_t *zone, size_t size, void **results, unsigned num_requested); /* given a size, returns pointers capable of holding that size; returns the number of pointers allocated (maybe 0 or less than num_requested) */
|
| + void (*batch_free)(struct _malloc_zone_t *zone, void **to_be_freed, unsigned num_to_be_freed); /* frees all the pointers in to_be_freed; note that to_be_freed may be overwritten during the process */
|
| +
|
| + struct malloc_introspection_t *introspect;
|
| + unsigned version;
|
| +
|
| + /* aligned memory allocation. The callback may be NULL. */
|
| + void *(*memalign)(struct _malloc_zone_t *zone, size_t alignment, size_t size);
|
| +
|
| + /* free a pointer known to be in zone and known to have the given size. The callback may be NULL. */
|
| + void (*free_definite_size)(struct _malloc_zone_t *zone, void *ptr, size_t size);
|
| +#endif
|
| + CFAllocatorRef _allocator;
|
| + CFAllocatorContext _context;
|
| };
|
|
|
| #endif // THIRD_PARTY_APPLE_APSL_CFBASE_H_
|
|
|