File tree Expand file tree Collapse file tree 1 file changed +13
-8
lines changed Expand file tree Collapse file tree 1 file changed +13
-8
lines changed Original file line number Diff line number Diff line change 1010
1111import CoreFoundation
1212
13+ #if os(OSX) || os(iOS)
14+ import Darwin
15+ #elseif os(Linux)
16+ import Glibc
17+ #endif
18+
1319#if os(OSX) || os(iOS)
1420internal let kCFCompareLessThan = CFComparisonResult . CompareLessThan
1521internal let kCFCompareEqualTo = CFComparisonResult . CompareEqualTo
@@ -257,17 +263,16 @@ public func NSStringFromClass(aClass: AnyClass) -> String {
257263 private let RTLD_DEFAULT = UnsafeMutablePointer < Void > ( bitPattern: 0 )
258264#endif
259265
260- typealias MetadataAccessor = @convention ( c) ( ) -> AnyClass ?
261-
262266/**
263267 Calls a metadata accessor given a metadata accessor symbol name.
264268 */
265269private func metadataFromAccessorName( mangledName : String ) -> AnyClass ? {
266- let symbol : MetadataAccessor ?
267-
268- symbol = unsafeBitCast ( dlsym ( RTLD_DEFAULT, mangledName) , MetadataAccessor . self)
269-
270- return symbol != nil ? symbol!( ) : nil
270+ let symbol = dlsym ( RTLD_DEFAULT, mangledName)
271+ if symbol != nil {
272+ return unsafeBitCast ( symbol, AnyClass . self)
273+ } else {
274+ return nil
275+ }
271276}
272277
273278/**
@@ -316,7 +321,7 @@ public func NSClassFromString(aClassName: String) -> AnyClass? {
316321 fatalError ( " NSClassFromString() invalid mangled name \( mangledName) " )
317322 }
318323
319- let accessorName = " _TMa " + mangledName. bridge ( ) . substringFromIndex ( 3 )
324+ let accessorName = " _TMC " + mangledName. bridge ( ) . substringFromIndex ( 3 )
320325
321326 return metadataFromAccessorName ( accessorName)
322327}
You can’t perform that action at this time.
0 commit comments