summaryrefslogtreecommitdiffstats
path: root/third_party/apple_apsl/CFBase.h
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/apple_apsl/CFBase.h')
-rw-r--r--third_party/apple_apsl/CFBase.h29
1 files changed, 26 insertions, 3 deletions
diff --git a/third_party/apple_apsl/CFBase.h b/third_party/apple_apsl/CFBase.h
index ae3e2fa..4c52e0e 100644
--- a/third_party/apple_apsl/CFBase.h
+++ b/third_party/apple_apsl/CFBase.h
@@ -30,9 +30,7 @@
#include "CFRuntime.h"
-struct ChromeCFAllocator {
-
-
+struct ChromeCFAllocator9and10 {
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 */
@@ -52,4 +50,29 @@ struct ChromeCFAllocator {
CFAllocatorContext _context;
};
+// TODO(avi): update upon source release; http://crbug.com/74589
+struct ChromeCFAllocator11 {
+ 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;
+};
+
#endif // THIRD_PARTY_APPLE_APSL_CFBASE_H_