Index: third_party/apple_apsl/CFBase.h |
diff --git a/third_party/apple_apsl/CFBase.h b/third_party/apple_apsl/CFBase.h |
index ae3e2fa0d1047f7c8073bba6dd764e4f9f500af7..4c52e0e62ea52a13cd876c0a7da779c79ec6c102 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_ |