OBJBASE=./CF-Objects
ARCHFLAGS="-arch i386 -arch x86_64"
-CFLAGS="-c -x objective-c -pipe -std=gnu99 -g -Wmost -Wno-trigraphs -mmacosx-version-min=10.6 -fconstant-cfstrings -fexceptions -DCF_BUILDING_CF=1 -DDEPLOYMENT_TARGET_MACOSX=1 -DMAC_OS_X_VERSION_MAX_ALLOWED=MAC_OS_X_VERSION_10_6 -DU_SHOW_DRAFT_API=1 -I$OBJBASE -DVERSION=535 -include CoreFoundation_Prefix.h"
-LFLAGS="-dynamiclib -mmacosx-version-min=10.6 -twolevel_namespace -init ___CFInitialize -compatibility_version 150 -current_version 535 -sectcreate __UNICODE __csbitmaps CFCharacterSetBitmaps.bitmap -Wl,-alias_list,SymbolAliases -sectcreate __UNICODE __properties CFUniCharPropertyDatabase.data -sectcreate __UNICODE __data $UNICODE_DATA_FILE -segprot __UNICODE r r"
+CFLAGS="-c -x objective-c -pipe -std=gnu99 -g -Wmost -Wno-trigraphs -mmacosx-version-min=10.6 -fconstant-cfstrings -fexceptions -DCF_BUILDING_CF=1 -DDEPLOYMENT_TARGET_MACOSX=1 -DMAC_OS_X_VERSION_MAX_ALLOWED=MAC_OS_X_VERSION_10_6 -DU_SHOW_DRAFT_API=1 -I$OBJBASE -DVERSION=550.13 -include CoreFoundation_Prefix.h"
+LFLAGS="-dynamiclib -mmacosx-version-min=10.6 -twolevel_namespace -init ___CFInitialize -compatibility_version 150 -current_version 550.13 -sectcreate __UNICODE __csbitmaps CFCharacterSetBitmaps.bitmap -Wl,-alias_list,SymbolAliases -sectcreate __UNICODE __properties CFUniCharPropertyDatabase.data -sectcreate __UNICODE __data $UNICODE_DATA_FILE -segprot __UNICODE r r"
/bin/rm -rf $OBJBASE
/bin/mkdir -p $OBJBASE
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFApplicationPreferences.c
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
Responsibility: Chris Parker
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFArray.c
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
Responsibility: Christopher Kane
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFArray.h
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFBag.c
Copyright 1998-2008, Apple, Inc. All rights reserved.
Responsibility: Christopher Kane
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFBag.h
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFBase.c
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
Responsibility: Christopher Kane
"CFAllocator",
NULL, // init
NULL, // copy
- __CFAllocatorDeallocate,
+ NULL,
NULL, // equal
NULL, // hash
NULL, //
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFBase.h
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFBasicHash.h
Copyright (c) 2008-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFBasicHash.m
Copyright (c) 2008-2009, Apple Inc. All rights reserved.
Responsibility: Christopher Kane
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFBinaryHeap.c
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
Responsibility: Christopher Kane
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFBinaryHeap.h
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFBinaryPList.c
Copyright (c) 2000-2009, Apple Inc. All rights reserved.
Responsibility: Tony Parker
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFBitVector.c
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
Responsibility: Christopher Kane
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFBitVector.h
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFBuiltinConverters.c
Copyright (c) 1999-2009, Apple Inc. All rights reserved.
Responsibility: Aki Inoue
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFBundle.c
Copyright (c) 1999-2009, Apple Inc. All rights reserved.
Responsibility: Doug Davidson
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFBundle.h
Copyright (c) 1999-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFBundlePriv.h
Copyright (c) 1999-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFBundle_BinaryTypes.h
Copyright (c) 1999-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFBundle_Internal.h
Copyright (c) 1999-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFBundle_Resources.c
Copyright (c) 1999-2009, Apple Inc. All rights reserved.
Responsibility: Doug Davidson
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFByteOrder.h
Copyright (c) 1995-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFCalendar.c
Copyright 2004-2004, Apple Computer, Inc. All rights reserved.
Responsibility: Christopher Kane
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFCalendar.h
Copyright (c) 2004-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFCharacterSet.c
Copyright (c) 1999-2009, Apple Inc. All rights reserved.
Responsibility: Aki Inoue
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFCharacterSet.h
Copyright (c) 1999-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFCharacterSetPriv.h
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFConcreteStreams.c
Copyright (c) 2000-2009, Apple Inc. All rights reserved.
Responsibility: Becky Willrich
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFData.c
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
Responsibility: Kevin Perry
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFData.h
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFDate.c
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
Responsibility: Christopher Kane
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFDate.h
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFDateFormatter.c
Copyright (c) 2002-2009, Apple Inc. All rights reserved.
Responsibility: Christopher Kane
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFDateFormatter.h
Copyright (c) 2003-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFDictionary.c
Copyright 1998-2008, Apple, Inc. All rights reserved.
Responsibility: Christopher Kane
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFDictionary.h
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFError.c
Copyright 2006-2009, Apple Inc. All rights reserved.
Responsibility: Ali Ozer
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFError.h
Copyright (c) 2006-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFError_Private.h
Copyright (c) 2006-2009, Apple Inc. All rights reserved.
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFFileUtilities.c
Copyright (c) 1999-2009, Apple Inc. All rights reserved.
Responsibility: Christopher Kane
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/*
* CFICUConverters.c
* CoreFoundation
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/*
* CFICUConverters.h
* CoreFoundation
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFInternal.h
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
*/
#define __CF_BIG_ENDIAN__ 0
#endif
-
#include <CoreFoundation/ForFoundationOnly.h>
CF_EXPORT const char *_CFProcessName(void);
return (typeID >= __CFRuntimeClassTableSize) || (((CFRuntimeBase *)obj)->_cfisa != __CFISAForTypeID(typeID) && ((CFRuntimeBase *)obj)->_cfisa > (uintptr_t)0xFFF);
}
-#endif
+
#define CF_IS_OBJC(typeID, obj) (false)
#define CF_OBJC_VOIDCALL0(obj, sel)
#define CF_OBJC_FUNCDISPATCH4(typeID, rettype, obj, sel, a1, a2, a3, a4)
#define CF_OBJC_FUNCDISPATCH5(typeID, rettype, obj, sel, a1, a2, a3, a4, a5)
+#endif
/* See comments in CFBase.c
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFLocale.c
Copyright (c) 2002-2009, Apple Inc. All rights reserved.
Responsibility: Christopher Kane
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFLocale.h
Copyright (c) 2002-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/*
CFLocaleIdentifier.c
Copyright (c) 2002-2009, Apple Inc. All rights reserved.
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/*
CFLocaleInternal.h
Copyright (c) 2008-2009, Apple Inc. All rights reserved.
* @APPLE_LICENSE_HEADER_END@
*/
+
@class NSString;
NSString * const kCFLocaleAlternateQuotationBeginDelimiterKey = @"kCFLocaleAlternateQuotationBeginDelimiterKey";
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFLogUtilities.h
Copyright (c) 2004-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFMachPort.c
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
Responsibility: Christopher Kane
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFMachPort.h
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFMessagePort.c
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
Responsibility: Christopher Kane
// Just a heuristic
#define __CFMessagePortMaxInlineBytes 4096*10
-struct __CFMessagePortMachMessage {
- mach_msg_header_t head;
- mach_msg_body_t body;
- union {
- mach_msg_ool_descriptor32_t _0;
- mach_msg_ool_descriptor64_t _1;
- mach_msg_ool_descriptor_t out_of_line;
- } desc; // ignored for inline bytes messages
+struct __CFMessagePortMachMessage0 {
+ mach_msg_base_t base;
+ int32_t magic;
int32_t msgid;
int32_t byteslen;
uint8_t bytes[0];
};
-static struct __CFMessagePortMachMessage *__CFMessagePortCreateMessage(bool reply, mach_port_t port, mach_port_t replyPort, int32_t convid, int32_t msgid, const uint8_t *bytes, int32_t byteslen) {
+struct __CFMessagePortMachMessage1 {
+ mach_msg_base_t base;
+ mach_msg_ool_descriptor_t ool;
+ int32_t magic;
+ int32_t msgid;
+ int32_t byteslen;
+};
+
+#define MAGIC 0xF1F2F3F4
+
+#define MSGP0_FIELD(msgp, ident) ((struct __CFMessagePortMachMessage0 *)msgp)->ident
+#define MSGP1_FIELD(msgp, ident) ((struct __CFMessagePortMachMessage1 *)msgp)->ident
+#define MSGP_GET(msgp, ident) \
+ ((((mach_msg_base_t *)msgp)->body.msgh_descriptor_count) ? MSGP1_FIELD(msgp, ident) : MSGP0_FIELD(msgp, ident))
+
+static mach_msg_base_t *__CFMessagePortCreateMessage(bool reply, mach_port_t port, mach_port_t replyPort, int32_t convid, int32_t msgid, const uint8_t *bytes, int32_t byteslen) {
if (__CFMessagePortMaxDataSize < byteslen) return NULL;
- struct __CFMessagePortMachMessage *msg;
- int32_t size = sizeof(struct __CFMessagePortMachMessage);
int32_t rounded_byteslen = ((byteslen + 3) & ~0x3);
if (rounded_byteslen <= __CFMessagePortMaxInlineBytes) {
- size += rounded_byteslen;
- }
- msg = CFAllocatorAllocate(kCFAllocatorSystemDefault, size, 0);
+ int32_t size = sizeof(struct __CFMessagePortMachMessage0) + rounded_byteslen;
+ struct __CFMessagePortMachMessage0 *msg = CFAllocatorAllocate(kCFAllocatorSystemDefault, size, 0);
if (!msg) return NULL;
memset(msg, 0, size);
- msg->head.msgh_id = convid;
- msg->head.msgh_size = size;
- msg->head.msgh_remote_port = port;
- msg->head.msgh_local_port = replyPort;
- msg->head.msgh_reserved = 0;
-// msg->head.msgh_bits = MACH_MSGH_BITS(MACH_MSG_TYPE_COPY_SEND, (replyPort ? MACH_MSG_TYPE_MAKE_SEND : 0));
- msg->head.msgh_bits = MACH_MSGH_BITS((reply ? MACH_MSG_TYPE_MOVE_SEND_ONCE : MACH_MSG_TYPE_COPY_SEND), (MACH_PORT_NULL != replyPort ? MACH_MSG_TYPE_MAKE_SEND_ONCE : 0));
+ msg->base.header.msgh_id = convid;
+ msg->base.header.msgh_size = size;
+ msg->base.header.msgh_remote_port = port;
+ msg->base.header.msgh_local_port = replyPort;
+ msg->base.header.msgh_reserved = 0;
+ msg->base.header.msgh_bits = MACH_MSGH_BITS((reply ? MACH_MSG_TYPE_MOVE_SEND_ONCE : MACH_MSG_TYPE_COPY_SEND), (MACH_PORT_NULL != replyPort ? MACH_MSG_TYPE_MAKE_SEND_ONCE : 0));
+ msg->base.body.msgh_descriptor_count = 0;
+ msg->magic = MAGIC;
msg->msgid = CFSwapInt32HostToLittle(msgid);
msg->byteslen = CFSwapInt32HostToLittle(byteslen);
- if (rounded_byteslen <= __CFMessagePortMaxInlineBytes) {
- msg->body.msgh_descriptor_count = 0;
if (NULL != bytes && 0 < byteslen) {
memmove(msg->bytes, bytes, byteslen);
}
+ return (mach_msg_base_t *)msg;
} else {
- msg->head.msgh_bits |= MACH_MSGH_BITS_COMPLEX;
- msg->body.msgh_descriptor_count = 1;
- msg->desc.out_of_line.deallocate = false;
- msg->desc.out_of_line.copy = MACH_MSG_VIRTUAL_COPY;
- msg->desc.out_of_line.address = (void *)bytes;
- msg->desc.out_of_line.size = byteslen;
- msg->desc.out_of_line.type = MACH_MSG_OOL_DESCRIPTOR;
- }
- return msg;
+ int32_t size = sizeof(struct __CFMessagePortMachMessage1);
+ struct __CFMessagePortMachMessage1 *msg = CFAllocatorAllocate(kCFAllocatorSystemDefault, size, 0);
+ if (!msg) return NULL;
+ memset(msg, 0, size);
+ msg->base.header.msgh_id = convid;
+ msg->base.header.msgh_size = size;
+ msg->base.header.msgh_remote_port = port;
+ msg->base.header.msgh_local_port = replyPort;
+ msg->base.header.msgh_reserved = 0;
+ msg->base.header.msgh_bits = MACH_MSGH_BITS((reply ? MACH_MSG_TYPE_MOVE_SEND_ONCE : MACH_MSG_TYPE_COPY_SEND), (MACH_PORT_NULL != replyPort ? MACH_MSG_TYPE_MAKE_SEND_ONCE : 0));
+ msg->base.header.msgh_bits |= MACH_MSGH_BITS_COMPLEX;
+ msg->base.body.msgh_descriptor_count = 1;
+ msg->magic = MAGIC;
+ msg->msgid = CFSwapInt32HostToLittle(msgid);
+ msg->byteslen = CFSwapInt32HostToLittle(byteslen);
+ msg->ool.deallocate = false;
+ msg->ool.copy = MACH_MSG_VIRTUAL_COPY;
+ msg->ool.address = (void *)bytes;
+ msg->ool.size = byteslen;
+ msg->ool.type = MACH_MSG_OOL_DESCRIPTOR;
+ return (mach_msg_base_t *)msg;
+ }
}
static CFStringRef __CFMessagePortCopyDescription(CFTypeRef cf) {
static void __CFMessagePortReplyCallBack(CFMachPortRef port, void *msg, CFIndex size, void *info) {
CFMessagePortRef ms = info;
- struct __CFMessagePortMachMessage *msgp = msg;
- struct __CFMessagePortMachMessage *replymsg;
+ mach_msg_base_t *msgp = msg;
+ mach_msg_base_t *replymsg;
__CFMessagePortLock(ms);
if (!__CFMessagePortIsValid(ms)) {
__CFMessagePortUnlock(ms);
int32_t byteslen = 0;
- Boolean invalidComplex = (0 != msgp->body.msgh_descriptor_count) && !(msgp->head.msgh_bits & MACH_MSGH_BITS_COMPLEX);
- invalidComplex = invalidComplex || ((msgp->head.msgh_bits & MACH_MSGH_BITS_COMPLEX) && (0 == msgp->body.msgh_descriptor_count));
- Boolean wayTooBig = sizeof(struct __CFMessagePortMachMessage) + __CFMessagePortMaxInlineBytes < msgp->head.msgh_size;
- Boolean wayTooSmall = msgp->head.msgh_size < sizeof(struct __CFMessagePortMachMessage);
+ Boolean invalidMagic = (MSGP_GET(msgp, magic) != MAGIC) && (CFSwapInt32(MSGP_GET(msgp, magic)) != MAGIC);
+ Boolean invalidComplex = (0 != msgp->body.msgh_descriptor_count) && !(msgp->header.msgh_bits & MACH_MSGH_BITS_COMPLEX);
+ invalidComplex = invalidComplex || ((msgp->header.msgh_bits & MACH_MSGH_BITS_COMPLEX) && (0 == msgp->body.msgh_descriptor_count));
+ Boolean wayTooBig = ((msgp->body.msgh_descriptor_count) ? sizeof(struct __CFMessagePortMachMessage1) : sizeof(struct __CFMessagePortMachMessage0) + __CFMessagePortMaxInlineBytes) < msgp->header.msgh_size;
+ Boolean wayTooSmall = msgp->header.msgh_size < sizeof(struct __CFMessagePortMachMessage0);
Boolean wrongSize = false;
if (!(invalidComplex || wayTooBig || wayTooSmall)) {
- byteslen = CFSwapInt32LittleToHost(msgp->byteslen);
+ byteslen = CFSwapInt32LittleToHost(MSGP_GET(msgp, byteslen));
wrongSize = (byteslen < 0) || (__CFMessagePortMaxDataSize < byteslen);
- if (msgp->head.msgh_bits & MACH_MSGH_BITS_COMPLEX) {
- wrongSize = wrongSize || (msgp->desc.out_of_line.size != byteslen);
+ if (0 != msgp->body.msgh_descriptor_count) {
+ wrongSize = wrongSize || (MSGP1_FIELD(msgp, ool).size != byteslen);
} else {
- wrongSize = wrongSize || (msgp->head.msgh_size - sizeof(struct __CFMessagePortMachMessage) < byteslen);
+ wrongSize = wrongSize || (msgp->header.msgh_size - sizeof(struct __CFMessagePortMachMessage0) < byteslen);
}
}
- Boolean invalidMsgID = (0 <= msgp->head.msgh_id) && (msgp->head.msgh_id <= INT32_MAX); // conversation id
- if (invalidComplex || wayTooBig || wayTooSmall || wrongSize || invalidMsgID) {
- CFLog(kCFLogLevelWarning, CFSTR("*** CFMessagePort: dropping corrupt reply Mach message (0b%d%d%d%d%d)"), invalidComplex, wayTooBig, wayTooSmall, wrongSize, invalidMsgID);
+ Boolean invalidMsgID = (0 <= msgp->header.msgh_id) && (msgp->header.msgh_id <= INT32_MAX); // conversation id
+ if (invalidMagic || invalidComplex || wayTooBig || wayTooSmall || wrongSize || invalidMsgID) {
+ CFLog(kCFLogLevelWarning, CFSTR("*** CFMessagePort: dropping corrupt reply Mach message (0b%d%d%d%d%d%d)"), invalidMagic, invalidComplex, wayTooBig, wayTooSmall, wrongSize, invalidMsgID);
mach_msg_destroy((mach_msg_header_t *)msgp);
__CFMessagePortUnlock(ms);
return;
}
- if (CFDictionaryContainsKey(ms->_replies, (void *)(uintptr_t)msgp->head.msgh_id)) {
+ if (CFDictionaryContainsKey(ms->_replies, (void *)(uintptr_t)msgp->header.msgh_id)) {
CFDataRef reply = NULL;
- replymsg = (struct __CFMessagePortMachMessage *)msg;
+ replymsg = (mach_msg_base_t *)msg;
if (0 == replymsg->body.msgh_descriptor_count) {
- uintptr_t msgp_extent = (uintptr_t)((uint8_t *)msgp + msgp->head.msgh_size);
- uintptr_t data_extent = (uintptr_t)((uint8_t *)&(replymsg->bytes) + byteslen);
+ uintptr_t msgp_extent = (uintptr_t)((uint8_t *)msgp + msgp->header.msgh_size);
+ uintptr_t data_extent = (uintptr_t)((uint8_t *)&(MSGP0_FIELD(replymsg, bytes)) + byteslen);
if (0 <= byteslen && data_extent <= msgp_extent) {
- reply = CFDataCreate(kCFAllocatorSystemDefault, replymsg->bytes, byteslen);
+ reply = CFDataCreate(kCFAllocatorSystemDefault, MSGP0_FIELD(replymsg, bytes), byteslen);
} else {
reply = (void *)~0; // means NULL data
}
} else {
//#warning CF: should create a no-copy data here that has a custom VM-freeing allocator, and not vm_dealloc here
- reply = CFDataCreate(kCFAllocatorSystemDefault, replymsg->desc.out_of_line.address, replymsg->desc.out_of_line.size);
- vm_deallocate(mach_task_self(), (vm_address_t)replymsg->desc.out_of_line.address, replymsg->desc.out_of_line.size);
+ reply = CFDataCreate(kCFAllocatorSystemDefault, MSGP1_FIELD(replymsg, ool).address, MSGP1_FIELD(replymsg, ool).size);
+ vm_deallocate(mach_task_self(), (vm_address_t)MSGP1_FIELD(replymsg, ool).address, MSGP1_FIELD(replymsg, ool).size);
}
- CFDictionarySetValue(ms->_replies, (void *)(uintptr_t)msgp->head.msgh_id, (void *)reply);
+ CFDictionarySetValue(ms->_replies, (void *)(uintptr_t)msgp->header.msgh_id, (void *)reply);
} else { /* discard message */
if (1 == msgp->body.msgh_descriptor_count) {
- vm_deallocate(mach_task_self(), (vm_address_t)msgp->desc.out_of_line.address, msgp->desc.out_of_line.size);
+ vm_deallocate(mach_task_self(), (vm_address_t)MSGP1_FIELD(msgp, ool).address, MSGP1_FIELD(msgp, ool).size);
}
}
__CFMessagePortUnlock(ms);
}
SInt32 CFMessagePortSendRequest(CFMessagePortRef remote, SInt32 msgid, CFDataRef data, CFTimeInterval sendTimeout, CFTimeInterval rcvTimeout, CFStringRef replyMode, CFDataRef *returnDatap) {
- struct __CFMessagePortMachMessage *sendmsg;
+ mach_msg_base_t *sendmsg;
CFRunLoopRef currentRL = CFRunLoopGetCurrent();
CFRunLoopSourceRef source = NULL;
CFDataRef reply = NULL;
if (sendTimeout < 1.0) sendTimeout = 0.0;
sendTimeOut = floor(sendTimeout);
}
- ret = mach_msg((mach_msg_header_t *)sendmsg, MACH_SEND_MSG|sendOpts, sendmsg->head.msgh_size, 0, MACH_PORT_NULL, sendTimeOut, MACH_PORT_NULL);
+ ret = mach_msg((mach_msg_header_t *)sendmsg, MACH_SEND_MSG|sendOpts, sendmsg->header.msgh_size, 0, MACH_PORT_NULL, sendTimeOut, MACH_PORT_NULL);
if (KERN_SUCCESS != ret) {
// need to deallocate the send-once right that might have been created
if (replyMode != NULL) mach_port_deallocate(mach_task_self(), ((mach_msg_header_t *)sendmsg)->msgh_local_port);
static void *__CFMessagePortPerform(void *msg, CFIndex size, CFAllocatorRef allocator, void *info) {
CFMessagePortRef ms = info;
- struct __CFMessagePortMachMessage *msgp = msg;
- struct __CFMessagePortMachMessage *replymsg;
+ mach_msg_base_t *msgp = msg;
+ mach_msg_base_t *replymsg;
void *context_info;
void (*context_release)(const void *);
CFDataRef returnData, data = NULL;
int32_t byteslen = 0;
- Boolean invalidComplex = (0 != msgp->body.msgh_descriptor_count) && !(msgp->head.msgh_bits & MACH_MSGH_BITS_COMPLEX);
- invalidComplex = invalidComplex || ((msgp->head.msgh_bits & MACH_MSGH_BITS_COMPLEX) && (0 == msgp->body.msgh_descriptor_count));
- Boolean wayTooBig = sizeof(struct __CFMessagePortMachMessage) + __CFMessagePortMaxInlineBytes < msgp->head.msgh_size;
- Boolean wayTooSmall = msgp->head.msgh_size < sizeof(struct __CFMessagePortMachMessage);
+ Boolean invalidMagic = (MSGP_GET(msgp, magic) != MAGIC) && (CFSwapInt32(MSGP_GET(msgp, magic)) != MAGIC);
+ Boolean invalidComplex = (0 != msgp->body.msgh_descriptor_count) && !(msgp->header.msgh_bits & MACH_MSGH_BITS_COMPLEX);
+ invalidComplex = invalidComplex || ((msgp->header.msgh_bits & MACH_MSGH_BITS_COMPLEX) && (0 == msgp->body.msgh_descriptor_count));
+ Boolean wayTooBig = ((msgp->body.msgh_descriptor_count) ? sizeof(struct __CFMessagePortMachMessage1) : sizeof(struct __CFMessagePortMachMessage0) + __CFMessagePortMaxInlineBytes) < msgp->header.msgh_size;
+ Boolean wayTooSmall = msgp->header.msgh_size < sizeof(struct __CFMessagePortMachMessage0);
Boolean wrongSize = false;
if (!(invalidComplex || wayTooBig || wayTooSmall)) {
- byteslen = CFSwapInt32LittleToHost(msgp->byteslen);
+ byteslen = CFSwapInt32LittleToHost(MSGP_GET(msgp, byteslen));
wrongSize = (byteslen < 0) || (__CFMessagePortMaxDataSize < byteslen);
- if (msgp->head.msgh_bits & MACH_MSGH_BITS_COMPLEX) {
- wrongSize = wrongSize || (msgp->desc.out_of_line.size != byteslen);
+ if (0 != msgp->body.msgh_descriptor_count) {
+ wrongSize = wrongSize || (MSGP1_FIELD(msgp, ool).size != byteslen);
} else {
- wrongSize = wrongSize || (msgp->head.msgh_size - sizeof(struct __CFMessagePortMachMessage) < byteslen);
+ wrongSize = wrongSize || (msgp->header.msgh_size - sizeof(struct __CFMessagePortMachMessage0) < byteslen);
}
}
- Boolean invalidMsgID = (msgp->head.msgh_id <= 0) || (INT32_MAX < msgp->head.msgh_id); // conversation id
- if (invalidComplex || wayTooBig || wayTooSmall || wrongSize || invalidMsgID) {
- mach_msg_security_trailer_t *trailer = (void *)msgp + msgp->head.msgh_size;
- CFLog(kCFLogLevelWarning, CFSTR("*** CFMessagePort: dropping corrupt request Mach message (0b%d%d%d%d%d)"), invalidComplex, wayTooBig, wayTooSmall, wrongSize, invalidMsgID);
+ Boolean invalidMsgID = (msgp->header.msgh_id <= 0) || (INT32_MAX < msgp->header.msgh_id); // conversation id
+ if (invalidMagic || invalidComplex || wayTooBig || wayTooSmall || wrongSize || invalidMsgID) {
+ CFLog(kCFLogLevelWarning, CFSTR("*** CFMessagePort: dropping corrupt request Mach message (0b%d%d%d%d%d%d)"), invalidMagic, invalidComplex, wayTooBig, wayTooSmall, wrongSize, invalidMsgID);
mach_msg_destroy((mach_msg_header_t *)msgp);
return NULL;
}
/* Create no-copy, no-free-bytes wrapper CFData */
if (0 == msgp->body.msgh_descriptor_count) {
- uintptr_t msgp_extent = (uintptr_t)((uint8_t *)msgp + msgp->head.msgh_size);
- uintptr_t data_extent = (uintptr_t)((uint8_t *)&(msgp->bytes) + byteslen);
- msgid = CFSwapInt32LittleToHost(msgp->msgid);
+ uintptr_t msgp_extent = (uintptr_t)((uint8_t *)msgp + msgp->header.msgh_size);
+ uintptr_t data_extent = (uintptr_t)((uint8_t *)&(MSGP0_FIELD(msgp, bytes)) + byteslen);
+ msgid = CFSwapInt32LittleToHost(MSGP_GET(msgp, msgid));
if (0 <= byteslen && data_extent <= msgp_extent) {
- data = CFDataCreateWithBytesNoCopy(allocator, msgp->bytes, byteslen, kCFAllocatorNull);
+ data = CFDataCreateWithBytesNoCopy(allocator, MSGP0_FIELD(msgp, bytes), byteslen, kCFAllocatorNull);
}
} else {
- msgid = CFSwapInt32LittleToHost(msgp->msgid);
- data = CFDataCreateWithBytesNoCopy(allocator, msgp->desc.out_of_line.address, msgp->desc.out_of_line.size, kCFAllocatorNull);
+ msgid = CFSwapInt32LittleToHost(MSGP_GET(msgp, msgid));
+ data = CFDataCreateWithBytesNoCopy(allocator, MSGP1_FIELD(msgp, ool).address, MSGP1_FIELD(msgp, ool).size, kCFAllocatorNull);
}
returnData = ms->_callout(ms, msgid, data, context_info);
/* Now, returnData could be (1) NULL, (2) an ordinary data < MAX_INLINE,
memmove(return_bytes, CFDataGetBytePtr(returnData), return_len);
}
}
- replymsg = __CFMessagePortCreateMessage(true, msgp->head.msgh_remote_port, MACH_PORT_NULL, -1 * (int32_t)msgp->head.msgh_id, msgid, return_bytes, return_len);
+ replymsg = __CFMessagePortCreateMessage(true, msgp->header.msgh_remote_port, MACH_PORT_NULL, -1 * (int32_t)msgp->header.msgh_id, msgid, return_bytes, return_len);
if (1 == replymsg->body.msgh_descriptor_count) {
- replymsg->desc.out_of_line.deallocate = true;
+ MSGP1_FIELD(replymsg, ool).deallocate = true;
}
if (data) CFRelease(data);
if (1 == msgp->body.msgh_descriptor_count) {
- vm_deallocate(mach_task_self(), (vm_address_t)msgp->desc.out_of_line.address, msgp->desc.out_of_line.size);
+ vm_deallocate(mach_task_self(), (vm_address_t)MSGP1_FIELD(msgp, ool).address, MSGP1_FIELD(msgp, ool).size);
}
if (returnData) CFRelease(returnData);
if (context_release) {
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFMessagePort.h
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFNumber.c
Copyright (c) 1999-2009, Apple Inc. All rights reserved.
Responsibility: Ali Ozer
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFNumber.h
Copyright (c) 1999-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFNumberFormatter.c
Copyright (c) 2002-2009, Apple Inc. All rights reserved.
Responsibility: Christopher Kane
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFNumberFormatter.h
Copyright (c) 2003-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFPlatform.c
Copyright (c) 1999-2009, Apple Inc. All rights reserved.
Responsibility: Christopher Kane
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFPlatformConverters.c
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
Responsibility: Aki Inoue
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFPlugIn.c
Copyright (c) 1999-2009, Apple Inc. All rights reserved.
Responsibility: Doug Davidson
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFPlugIn.h
Copyright (c) 1999-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFPlugInCOM.h
Copyright (c) 1999-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFPlugIn_Factory.c
Copyright (c) 1999-2009, Apple Inc. All rights reserved.
Responsibility: Doug Davidson
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFPlugIn_Factory.h
Copyright (c) 1999-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFPlugIn_Instance.c
Copyright (c) 1999-2009, Apple Inc. All rights reserved.
Responsibility: Doug Davidson
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFPlugIn_PlugIn.c
Copyright (c) 1999-2009, Apple Inc. All rights reserved.
Responsibility: Doug Davidson
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFPreferences.c
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
Responsibility: Chris Parker
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFPreferences.h
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFPriv.h
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFPropertyList.c
Copyright (c) 1999-2009, Apple Inc. All rights reserved.
Responsibility: Tony Parker
if (!uniqued) {
uniqued = (CFStringRef)__CFStringCollectionCopy(pInfo->allocator, stringToUnique);
CFSetAddValue(pInfo->stringSet, uniqued);
- CFRelease(uniqued);
+ __CFTypeCollectionRelease(pInfo->allocator, uniqued);
}
return uniqued;
}
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFPropertyList.h
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFRunLoop.c
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
Responsibility: Christopher Kane
sourceHandledThisLoop = __CFRunLoopDoSources0(rl, rlm, stopAfterHandle) || sourceHandledThisLoop;
+#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED
+ if (MACH_PORT_NULL != dispatchPort) {
+ msg = (mach_msg_header_t *)buffer;
+ msg->msgh_size = sizeof(buffer);
+ msg->msgh_bits = 0;
+ msg->msgh_local_port = dispatchPort;
+ msg->msgh_remote_port = MACH_PORT_NULL;
+ msg->msgh_id = 0;
+ ret = mach_msg(msg, MACH_RCV_MSG|MACH_RCV_LARGE|MACH_RCV_TIMEOUT|MACH_RCV_TRAILER_TYPE(MACH_MSG_TRAILER_FORMAT_0)|MACH_RCV_TRAILER_ELEMENTS(MACH_RCV_TRAILER_AV), 0, msg->msgh_size, dispatchPort, 0, MACH_PORT_NULL);
+
+ if (MACH_MSG_SUCCESS == ret) {
+ __CFRunLoopModeUnlock(rlm);
+ pthread_setspecific(__CFTSDKeyIsInGCDMainQ, (void *)3);
+ _dispatch_main_queue_callback_4CF(msg);
+ sourceHandledThisLoop = true;
+ pthread_setspecific(__CFTSDKeyIsInGCDMainQ, (void *)0);
+ __CFRunLoopLock(rl);
+ __CFRunLoopModeLock(rlm);
+ __CFRunLoopUnlock(rl);
+ } else if (MACH_RCV_TIMED_OUT == ret) {
+ msg = NULL;
+ } else {
+ HALT;
+ }
+ }
+#endif
+
if (sourceHandledThisLoop) {
poll = true;
if (rl->_blocks_head) {
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFRunLoop.h
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFRuntime.c
Copyright (c) 1999-2009, Apple Inc. All rights reserved.
Responsibility: Christopher Kane
static void *_original_objc_dealloc = 0;
#endif
+void _CFEnableZombies(void) {
+ __CFZombieEnabled = 0xFF;
+}
+
#endif /* DEBUG */
// XXX_PCB: use the class version field as a bitmask, to allow classes to opt-in for GC scanning.
extern void __CFBinaryHeapInitialize(void);
extern void __CFBitVectorInitialize(void);
#if DEPLOYMENT_TARGET_WINDOWS
+extern void __CFWindowsMessageQueueInitialize(void);
+extern void __CFWindowsNamedPipeInitialize(void);
extern void __CFBaseCleanup(void);
#endif
extern void __CFStreamInitialize(void);
} while (__builtin_expect(!success, 0));
#endif
if (!didAuto && __builtin_expect(__CFOASafe, 0)) {
- __CFRecordAllocationEvent(__kCFRetainEvent, (void *)cf, 0, CFGetRetainCount(cf), NULL);
+ __CFRecordAllocationEvent(__kCFRetainEvent, (void *)cf, 0, 0, NULL);
}
return cf;
}
CF_EXPORT void _CFRelease(CFTypeRef cf) {
- Boolean isAllocator = false;
+ CFTypeID typeID = __CFGenericTypeID_inline(cf);
+ Boolean isAllocator = (__kCFAllocatorTypeID_CONST == typeID);
Boolean didAuto = false;
#if __LP64__
uint32_t lowBits;
do {
lowBits = ((CFRuntimeBase *)cf)->_rc;
- if (0 == lowBits) return; // Constant CFTypeRef
+ if (0 == lowBits) {
+ if (CF_IS_COLLECTABLE(cf)) auto_zone_release(auto_zone(), (void*)cf);
+ return; // Constant CFTypeRef
+ }
if (1 == lowBits) {
// CANNOT WRITE ANY NEW VALUE INTO [CF_RC_BITS] UNTIL AFTER FINALIZATION
- CFTypeID typeID = __CFGenericTypeID_inline(cf);
- isAllocator = (__kCFAllocatorTypeID_CONST == typeID);
CFRuntimeClass *cfClass = __CFRuntimeClassTable[typeID];
if (cfClass->version & _kCFRuntimeResourcefulObject && cfClass->reclaim != NULL) {
cfClass->reclaim(cf);
#else
volatile UInt32 *infoLocation = (UInt32 *)&(((CFRuntimeBase *)cf)->_cfinfo);
CFIndex rcLowBits = __CFBitfieldGetValue(*infoLocation, RC_END, RC_START);
- if (__builtin_expect(0 == rcLowBits, 0)) return; // Constant CFTypeRef
+ if (__builtin_expect(0 == rcLowBits, 0)) {
+ if (CF_IS_COLLECTABLE(cf)) auto_zone_release(auto_zone(), (void*)cf);
+ return; // Constant CFTypeRef
+ }
bool success = 0;
do {
UInt32 initialCheckInfo = *infoLocation;
if (__builtin_expect(1 == rcLowBits, 0)) {
// we think cf should be deallocated
// CANNOT WRITE ANY NEW VALUE INTO [CF_RC_BITS] UNTIL AFTER FINALIZATION
- CFTypeID typeID = __CFGenericTypeID_inline(cf);
CFRuntimeClass *cfClass = __CFRuntimeClassTable[typeID];
if (cfClass->version & _kCFRuntimeResourcefulObject && cfClass->reclaim != NULL) {
cfClass->reclaim(cf);
didAuto = true;
}
} else {
- if (__builtin_expect(__kCFAllocatorTypeID_CONST == typeID, 0)) {
- if (!didAuto && __builtin_expect(__CFOASafe, 0)) {
- __CFRecordAllocationEvent(__kCFReleaseEvent, (void *)cf, 0, 0, NULL);
- }
- __CFAllocatorDeallocate((void *)cf);
- success = 1;
+ if (isAllocator) {
+ goto really_free;
} else {
- if (NULL != __CFRuntimeClassTable[typeID]->finalize) {
- __CFRuntimeClassTable[typeID]->finalize(cf);
+ void (*func)(CFTypeRef) = __CFRuntimeClassTable[typeID]->finalize;
+ if (NULL != func) {
+ func(cf);
}
// We recheck rcLowBits to see if the object has been retained again during
// the finalization process. This allows for the finalizer to resurrect,
#endif
if (!didAuto && __builtin_expect(__CFOASafe, 0)) {
- __CFRecordAllocationEvent(__kCFReleaseEvent, (void *)cf, 0, CFGetRetainCount(cf), NULL);
+ __CFRecordAllocationEvent(__kCFReleaseEvent, (void *)cf, 0, 0, NULL);
}
return;
__CFRecordAllocationEvent(__kCFReleaseEvent, (void *)cf, 0, 0, NULL);
}
// cannot zombify allocators, which get deallocated by __CFAllocatorDeallocate (finalize)
- if (!isAllocator) {
- CFAllocatorRef allocator;
- Boolean usesSystemDefaultAllocator;
-
- if (__CFBitfieldGetValue(((const CFRuntimeBase *)cf)->_cfinfo[CF_INFO_BITS], 7, 7)) {
- allocator = kCFAllocatorSystemDefault;
+ if (isAllocator) {
+ __CFAllocatorDeallocate((void *)cf);
} else {
+ CFAllocatorRef allocator = kCFAllocatorSystemDefault;
+ Boolean usesSystemDefaultAllocator = true;
+
+ if (!__CFBitfieldGetValue(((const CFRuntimeBase *)cf)->_cfinfo[CF_INFO_BITS], 7, 7)) {
allocator = CFGetAllocator(cf);
- }
usesSystemDefaultAllocator = (allocator == kCFAllocatorSystemDefault);
+ }
if (__CFZombieEnabled && !kCFUseCollectableAllocator) {
Class cls = object_getClass((id)cf);
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFRuntime.h
Copyright (c) 1999-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFSet.c
Copyright 1998-2008, Apple, Inc. All rights reserved.
Responsibility: Christopher Kane
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFSet.h
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFSocket.c
Copyright (c) 1999-2009, Apple Inc. All rights reserved.
Responsibility: Christopher Kane
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFSocket.h
Copyright (c) 1999-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFSocketStream.c
Copyright (c) 2000-2009, Apple Inc. All rights reserved.
Responsibility: Jeremy Wyld
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFSortFunctions.c
Copyright (c) 1999-2009, Apple Inc. All rights reserved.
Responsibility: Christopher Kane
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFStorage.c
Copyright (c) 1999-2009, Apple Inc. All rights reserved.
Responsibility: Ali Ozer
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFStorage.h
Copyright (c) 1999-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFStream.c
Copyright (c) 2000-2009, Apple Inc. All rights reserved.
Responsibility: Becky Willrich
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFStream.h
Copyright (c) 2000-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFStreamAbstract.h
Copyright (c) 2000-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
#if !defined(__COREFOUNDATION_CFSTREAMINTERNAL__)
#define __COREFOUNDATION_CFSTREAMINTERNAL__ 1
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFStreamPriv.h
Copyright (c) 2000-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFString.c
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
Responsibility: Ali Ozer
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFString.h
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFStringDefaultEncoding.h
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFStringEncodingConverter.c
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
Responsibility: Aki Inoue
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFStringEncodingConverter.h
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFStringEncodingConverterExt.h
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFStringEncodingConverterPriv.h
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/*
* CFStringEncodingDatabase.c
* CoreFoundation
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/*
* CFStringEncodingDatabase.h
* CoreFoundation
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFStringEncodingExt.h
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFStringEncodings.c
Copyright (c) 1999-2009, Apple Inc. All rights reserved.
Responsibility: Aki Inoue
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFStringScanner.c
Copyright (c) 1999-2009, Apple Inc. All rights reserved.
Responsibility: Ali Ozer
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFStringUtilities.c
Copyright (c) 1999-2009, Apple Inc. All rights reserved.
Responsibility: Aki Inoue
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFSystemDirectories.c
Copyright (c) 1997-2009, Apple Inc. All rights reserved.
Responsibility: Ali Ozer
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFTimeZone.c
Copyright 1998-2002, Apple, Inc. All rights reserved.
Responsibility: Christopher Kane
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFTimeZone.h
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFTree.c
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
Responsibility: Christopher Kane
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFTree.h
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFURL.c
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
Responsibility: Becky Willrich
#define ASSERT_CHECK_PATHSTYLE(x) 0
+#if DEPLOYMENT_TARGET_WINDOWS
+#define PATH_SEP '\\'
+#define PATH_MAX MAX_PATH
+#else
+#define PATH_SEP '/'
+#endif
+
// In order to reduce the sizeof ( __CFURL ), move these items into a seperate structure which is
// only allocated when necessary. In my tests, it's almost never needed -- very rarely does a CFURL have
// either a sanitized string or a reserved pointer for URLHandle.
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFURL.h
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFURLAccess.c
Copyright (c) 1999-2009, Apple Inc. All rights reserved.
Responsibility: Chris Linn
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFURLAccess.h
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFUUID.c
Copyright (c) 1999-2009, Apple Inc. All rights reserved.
Responsibility: Doug Davidson
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFUUID.h
Copyright (c) 1999-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFUniChar.c
Copyright (c) 2001-2009, Apple Inc. All rights reserved.
Responsibility: Aki Inoue
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFUniChar.h
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFUniCharPriv.h
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFUnicodeDecomposition.c
Copyright (c) 1999-2009, Apple Inc. All rights reserved.
Responsibility: Aki Inoue
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/*
* CFUnicodeDecomposition.h
* CoreFoundation
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFUnicodePrecomposition.c
Copyright (c) 1999-2009, Apple Inc. All rights reserved.
Responsibility: Aki Inoue
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/*
* CFUnicodePrecomposition.h
* CoreFoundation
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFUserNotification.c
Copyright (c) 2000-2009, Apple Inc. All rights reserved.
Responsibility: Doug Davidson
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFUserNotification.h
Copyright (c) 2000-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFUtilities.c
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
Responsibility: Christopher Kane
*
* @APPLE_LICENSE_HEADER_END@
*/
-const unsigned char kCFCoreFoundationVersionString[] = "@(#)PROGRAM:CoreFoundation PROJECT:CoreFoundation-550 SYSTEM:Darwin DEVELOPER:unknown BUILT:" __DATE__ " " __TIME__ "\n";
-double kCFCoreFoundationVersionNumber = (double)550;
+
+/* CFVersion.c
+ Copyright 2009, Apple Inc. All rights reserved.
+ Responsibility: CFLite Team
+*/
+const unsigned char kCFCoreFoundationVersionString[] = "@(#)PROGRAM:CoreFoundation PROJECT:CoreFoundation-550.13 SYSTEM:Darwin DEVELOPER:unknown BUILT:" __DATE__ " " __TIME__ "\n";
+double kCFCoreFoundationVersionNumber = (double)550.13;
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFXMLInputStream.c
Copyright (c) 1999-2009, Apple Inc. All rights reserved.
Responsibility: Chris Parker
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFXMLInputStream.h
Copyright (c) 2000-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFXMLNode.c
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
Responsibility: Chris Parker
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFXMLNode.h
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFXMLParser.c
Copyright (c) 1999-2009, Apple Inc. All rights reserved.
Responsibility: Chris Parker
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFXMLParser.h
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFXMLPreferencesDomain.c
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
Responsibility: Chris Parker
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CFXMLTree.c
Copyright (c) 1999-2009, Apple Inc. All rights reserved.
Responsibility: Chris Parker
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CoreFoundation.h
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
*/
#if (TARGET_OS_MAC && !(TARGET_OS_EMBEDDED || TARGET_OS_IPHONE)) || (TARGET_OS_EMBEDDED || TARGET_OS_IPHONE)
#include <CoreFoundation/CFMachPort.h>
#endif
+
#if (TARGET_OS_MAC && !(TARGET_OS_EMBEDDED || TARGET_OS_IPHONE))
#include <CoreFoundation/CFUserNotification.h>
#include <CoreFoundation/CFXMLNode.h>
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* CoreFoundation_Prefix.h
Copyright (c) 2005-2009, Apple Inc. All rights reserved.
*/
*
* @APPLE_LICENSE_HEADER_END@
*/
+
/* ForFoundationOnly.h
Copyright (c) 1998-2009, Apple Inc. All rights reserved.
*/
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
- <string>6.6</string>
+ <string>6.6.1</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
- <string>550.1</string>
+ <string>550.13</string>
<key>CarbonLazyValues</key>
<dict>
<key>CodeFragmentManager</key>