Skip to content

Commit 123dde1

Browse files
authored
Merge pull request #2571 from compnerd/laziness-is-bad-for-you
Foundation: adjust initialization codepath for Windows
2 parents c21ef72 + c8ae80f commit 123dde1

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

Foundation/NSSwiftRuntime.swift

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,13 @@ internal func __CFInitializeSwift() {
154154
__CFSocketInitializeWinSock()
155155
#endif
156156

157+
// Ensure that the foreign type value witness for `_NSCFConstantString` is
158+
// initialized prior to access. This may be lazily initialized on some
159+
// targets when the type cache is updated due to a type-cast.
160+
//
161+
// TODO: invoke `swift_getForeignTypeMetadata` to do this directly
162+
if let _ = "" as? _NSCFConstantString {}
163+
157164
_CFRuntimeBridgeTypeToClass(CFStringGetTypeID(), unsafeBitCast(_NSCFString.self, to: UnsafeRawPointer.self))
158165
_CFRuntimeBridgeTypeToClass(CFArrayGetTypeID(), unsafeBitCast(_NSCFArray.self, to: UnsafeRawPointer.self))
159166
_CFRuntimeBridgeTypeToClass(CFDictionaryGetTypeID(), unsafeBitCast(_NSCFDictionary.self, to: UnsafeRawPointer.self))

0 commit comments

Comments
 (0)