Skip to content

Commit 02d9151

Browse files
authored
Merge pull request #2876 from millenomi/no-impl-only
Move all uses of Core Foundation to be @_implementationOnly except getCFRunLoop().
2 parents abb1349 + 1f8a839 commit 02d9151

File tree

101 files changed

+542
-306
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

101 files changed

+542
-306
lines changed

CoreFoundation/Base.subproj/CFRuntime.c

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1674,7 +1674,34 @@ static void _CFRelease(CFTypeRef CF_RELEASES_ARGUMENT cf) {
16741674
#if DEPLOYMENT_RUNTIME_SWIFT
16751675
struct _CFSwiftBridge __CFSwiftBridge = { { NULL } };
16761676

1677-
struct _NSCFXMLBridge __NSCFXMLBridge = {
1677+
struct _NSCFXMLBridgeStrong __NSCFXMLBridgeStrong = {
1678+
CFArrayGetCount,
1679+
CFArrayGetValueAtIndex,
1680+
CFErrorCreate,
1681+
CFStringCreateWithCString,
1682+
CFStringCreateMutable,
1683+
CFStringAppend,
1684+
CFStringAppendCString,
1685+
CFStringGetLength,
1686+
CFStringGetMaximumSizeForEncoding,
1687+
CFStringGetCString,
1688+
CFDataCreateWithBytesNoCopy,
1689+
CFRelease,
1690+
CFStringCreateWithBytes,
1691+
CFArrayCreateMutable,
1692+
CFArrayAppendValue,
1693+
CFDataGetLength,
1694+
CFDataGetBytePtr,
1695+
CFDictionaryCreateMutable,
1696+
CFDictionarySetValue,
1697+
&kCFAllocatorSystemDefault,
1698+
&kCFAllocatorNull,
1699+
&kCFCopyStringDictionaryKeyCallBacks,
1700+
&kCFTypeDictionaryValueCallBacks,
1701+
&kCFErrorLocalizedDescriptionKey,
1702+
};
1703+
1704+
struct _NSCFXMLBridgeUntyped __NSCFXMLBridgeUntyped = {
16781705
CFArrayGetCount,
16791706
CFArrayGetValueAtIndex,
16801707
CFErrorCreate,

CoreFoundation/Base.subproj/ForSwiftFoundationOnly.h

Lines changed: 60 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -280,34 +280,62 @@ struct _CFSwiftBridge {
280280
struct _NSURLBridge NSURL;
281281
};
282282

283-
struct _NSCFXMLBridge {
284-
CFIndex (* _Nonnull CFArrayGetCount)(CFArrayRef);
285-
const void * _Null_unspecified (* _Nonnull CFArrayGetValueAtIndex)(CFArrayRef, CFIndex);
286-
_Null_unspecified CFErrorRef (* _Nonnull CFErrorCreate)(CFAllocatorRef _Nullable, CFStringRef, CFIndex, CFDictionaryRef _Nullable);
287-
_Null_unspecified CFStringRef (* _Nonnull CFStringCreateWithCString)(CFAllocatorRef _Nullable, const char * _Null_unspecified, CFStringEncoding);
288-
_Null_unspecified CFMutableStringRef (* _Nonnull CFStringCreateMutable)(CFAllocatorRef _Nullable, CFIndex);
289-
void (* _Nonnull CFStringAppend)(CFMutableStringRef, CFStringRef);
290-
void (* _Nonnull CFStringAppendCString)(CFMutableStringRef, const char * _Null_unspecified, CFStringEncoding);
291-
CFIndex (* _Nonnull CFStringGetLength)(CFStringRef);
292-
CFIndex (* _Nonnull CFStringGetMaximumSizeForEncoding)(CFIndex, CFStringEncoding);
293-
Boolean (* _Nonnull CFStringGetCString)(CFStringRef, char *, CFIndex, CFStringEncoding);
294-
_Null_unspecified CFDataRef (* _Nonnull CFDataCreateWithBytesNoCopy)(CFAllocatorRef _Nullable, const uint8_t *, CFIndex, CFAllocatorRef);
295-
void (* _Nonnull CFRelease)(CFTypeRef);
296-
_Null_unspecified CFStringRef (* _Nonnull CFStringCreateWithBytes)(CFAllocatorRef _Nullable, const UInt8 *, CFIndex, CFStringEncoding, Boolean);
297-
_Null_unspecified CFMutableArrayRef (* _Nonnull CFArrayCreateMutable)(CFAllocatorRef _Nullable, CFIndex, const CFArrayCallBacks *_Nullable);
298-
void (* _Nonnull CFArrayAppendValue)(CFMutableArrayRef, const void *);
299-
CFIndex (* _Nonnull CFDataGetLength)(CFDataRef);
300-
const uint8_t * _Null_unspecified (* _Nonnull CFDataGetBytePtr)(CFDataRef);
301-
_Null_unspecified CFMutableDictionaryRef (* _Nonnull CFDictionaryCreateMutable)(CFAllocatorRef _Nullable, CFIndex, const CFDictionaryKeyCallBacks *, const CFDictionaryValueCallBacks *);
302-
void (* _Nonnull CFDictionarySetValue)(CFMutableDictionaryRef, const void * _Null_Unspecified, const void * _Null_unspecified);
303-
const _Null_unspecified CFAllocatorRef * _Nonnull kCFAllocatorSystemDefault;
304-
const _Null_unspecified CFAllocatorRef * _Nonnull kCFAllocatorNull;
305-
const CFDictionaryKeyCallBacks * _Nonnull kCFCopyStringDictionaryKeyCallBacks;
306-
const CFDictionaryValueCallBacks * _Nonnull kCFTypeDictionaryValueCallBacks;
307-
_Null_unspecified const CFStringRef * _Nonnull kCFErrorLocalizedDescriptionKey;
283+
struct _NSCFXMLBridgeStrong {
284+
CFIndex (* _Nonnull CFArrayGetCount)(CFArrayRef);
285+
const void * _Null_unspecified (* _Nonnull CFArrayGetValueAtIndex)(CFArrayRef, CFIndex);
286+
_Null_unspecified CFErrorRef (* _Nonnull CFErrorCreate)(CFAllocatorRef _Nullable, CFStringRef, CFIndex, CFDictionaryRef _Nullable);
287+
_Null_unspecified CFStringRef (* _Nonnull CFStringCreateWithCString)(CFAllocatorRef _Nullable, const char * _Null_unspecified, CFStringEncoding);
288+
_Null_unspecified CFMutableStringRef (* _Nonnull CFStringCreateMutable)(CFAllocatorRef _Nullable, CFIndex);
289+
void (* _Nonnull CFStringAppend)(CFMutableStringRef, CFStringRef);
290+
void (* _Nonnull CFStringAppendCString)(CFMutableStringRef, const char * _Null_unspecified, CFStringEncoding);
291+
CFIndex (* _Nonnull CFStringGetLength)(CFStringRef);
292+
CFIndex (* _Nonnull CFStringGetMaximumSizeForEncoding)(CFIndex, CFStringEncoding);
293+
Boolean (* _Nonnull CFStringGetCString)(CFStringRef, char *, CFIndex, CFStringEncoding);
294+
_Null_unspecified CFDataRef (* _Nonnull CFDataCreateWithBytesNoCopy)(CFAllocatorRef _Nullable, const uint8_t *, CFIndex, CFAllocatorRef);
295+
void (* _Nonnull CFRelease)(CFTypeRef);
296+
_Null_unspecified CFStringRef (* _Nonnull CFStringCreateWithBytes)(CFAllocatorRef _Nullable, const UInt8 *, CFIndex, CFStringEncoding, Boolean);
297+
_Null_unspecified CFMutableArrayRef (* _Nonnull CFArrayCreateMutable)(CFAllocatorRef _Nullable, CFIndex, const CFArrayCallBacks *_Nullable);
298+
void (* _Nonnull CFArrayAppendValue)(CFMutableArrayRef, const void *);
299+
CFIndex (* _Nonnull CFDataGetLength)(CFDataRef);
300+
const uint8_t * _Null_unspecified (* _Nonnull CFDataGetBytePtr)(CFDataRef);
301+
_Null_unspecified CFMutableDictionaryRef (* _Nonnull CFDictionaryCreateMutable)(CFAllocatorRef _Nullable, CFIndex, const CFDictionaryKeyCallBacks *, const CFDictionaryValueCallBacks *);
302+
void (* _Nonnull CFDictionarySetValue)(CFMutableDictionaryRef, const void * _Null_Unspecified, const void * _Null_unspecified);
303+
const _Null_unspecified CFAllocatorRef * _Nonnull kCFAllocatorSystemDefault;
304+
const _Null_unspecified CFAllocatorRef * _Nonnull kCFAllocatorNull;
305+
const CFDictionaryKeyCallBacks * _Nonnull kCFCopyStringDictionaryKeyCallBacks;
306+
const CFDictionaryValueCallBacks * _Nonnull kCFTypeDictionaryValueCallBacks;
307+
_Null_unspecified const CFStringRef * _Nonnull kCFErrorLocalizedDescriptionKey;
308308
};
309309

310-
CF_EXPORT struct _NSCFXMLBridge __NSCFXMLBridge;
310+
struct _NSCFXMLBridgeUntyped {
311+
void *CFArrayGetCount;
312+
void *CFArrayGetValueAtIndex;
313+
void *CFErrorCreate;
314+
void *CFStringCreateWithCString;
315+
void *CFStringCreateMutable;
316+
void *CFStringAppend;
317+
void *CFStringAppendCString;
318+
void *CFStringGetLength;
319+
void *CFStringGetMaximumSizeForEncoding;
320+
void *CFStringGetCString;
321+
void *CFDataCreateWithBytesNoCopy;
322+
void *CFRelease;
323+
void *CFStringCreateWithBytes;
324+
void *CFArrayCreateMutable;
325+
void *CFArrayAppendValue;
326+
void *CFDataGetLength;
327+
void *CFDataGetBytePtr;
328+
void *CFDictionaryCreateMutable;
329+
void *CFDictionarySetValue;
330+
void *kCFAllocatorSystemDefault;
331+
void *kCFAllocatorNull;
332+
void *kCFCopyStringDictionaryKeyCallBacks;
333+
void *kCFTypeDictionaryValueCallBacks;
334+
void *kCFErrorLocalizedDescriptionKey;
335+
};
336+
337+
CF_EXPORT struct _NSCFXMLBridgeStrong __NSCFXMLBridgeStrong;
338+
CF_EXPORT struct _NSCFXMLBridgeUntyped __NSCFXMLBridgeUntyped;
311339

312340
CF_EXPORT struct _CFSwiftBridge __CFSwiftBridge;
313341

@@ -478,6 +506,12 @@ static inline _Bool _withStackOrHeapBuffer(size_t amount, void (__attribute__((n
478506
return true;
479507
}
480508

509+
static inline _Bool _withStackOrHeapBufferWithResultInArguments(size_t amount, void (__attribute__((noescape)) ^ _Nonnull applier)(void *_Nonnull memory, size_t capacity, _Bool onStack)) {
510+
return _withStackOrHeapBuffer(amount, ^(_ConditionalAllocationBuffer *buffer) {
511+
applier(buffer->memory, buffer->capacity, buffer->onStack);
512+
});
513+
}
514+
481515
#pragma mark - Character Set
482516

483517
CF_CROSS_PLATFORM_EXPORT CFIndex __CFCharDigitValue(UniChar ch);

0 commit comments

Comments
 (0)