diff --git a/.swift-version b/.swift-version index 9f55b2c..8c50098 100644 --- a/.swift-version +++ b/.swift-version @@ -1 +1 @@ -3.0 +3.1 diff --git a/MessagePack.swift.podspec b/MessagePack.swift.podspec index 8926b21..8cc85a0 100644 --- a/MessagePack.swift.podspec +++ b/MessagePack.swift.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'MessagePack.swift' - s.version = '2.0.1' + s.version = '2.0.2' s.summary = "It's like JSON, but fast and small...and Swift!" s.homepage = 'https://github.com/a2/MessagePack.swift' s.license = 'MIT' diff --git a/MessagePack.xcodeproj/project.pbxproj b/MessagePack.xcodeproj/project.pbxproj index 3fb0bdc..9e1be4e 100644 --- a/MessagePack.xcodeproj/project.pbxproj +++ b/MessagePack.xcodeproj/project.pbxproj @@ -53,8 +53,9 @@ children = ( OBJ_16, ); - path = "Tests"; - sourceTree = ""; + name = "Tests"; + path = ""; + sourceTree = "SOURCE_ROOT"; }; OBJ_16 = { isa = "PBXGroup"; @@ -158,6 +159,7 @@ OBJ_3 = { isa = "XCBuildConfiguration"; buildSettings = { + CLANG_ENABLE_OBJC_ARC = "YES"; COMBINE_HIDPI_IMAGES = "YES"; COPY_PHASE_STRIP = "NO"; DEBUG_INFORMATION_FORMAT = "dwarf"; @@ -258,6 +260,7 @@ OBJ_4 = { isa = "XCBuildConfiguration"; buildSettings = { + CLANG_ENABLE_OBJC_ARC = "YES"; COMBINE_HIDPI_IMAGES = "YES"; COPY_PHASE_STRIP = "YES"; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; @@ -279,7 +282,7 @@ "watchsimulator", ); SWIFT_ACTIVE_COMPILATION_CONDITIONS = "SWIFT_PACKAGE"; - SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; SWIFT_VERSION = "3.0"; USE_HEADERMAP = "NO"; }; @@ -309,6 +312,7 @@ PRODUCT_BUNDLE_IDENTIFIER = "MessagePack"; PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = "YES"; TARGET_NAME = "MessagePack"; }; name = "Debug"; @@ -337,6 +341,7 @@ PRODUCT_BUNDLE_IDENTIFIER = "MessagePack"; PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = "YES"; TARGET_NAME = "MessagePack"; }; name = "Release"; @@ -431,6 +436,7 @@ INFOPLIST_FILE = "MessagePack.xcodeproj/MessagePackTests_Info.plist"; LD_RUNPATH_SEARCH_PATHS = ( "@loader_path/../Frameworks", + "@loader_path/Frameworks", ); OTHER_LDFLAGS = ( "$(inherited)", @@ -456,6 +462,7 @@ INFOPLIST_FILE = "MessagePack.xcodeproj/MessagePackTests_Info.plist"; LD_RUNPATH_SEARCH_PATHS = ( "@loader_path/../Frameworks", + "@loader_path/Frameworks", ); OTHER_LDFLAGS = ( "$(inherited)", @@ -560,8 +567,9 @@ children = ( OBJ_8, ); - path = "Sources"; - sourceTree = ""; + name = "Sources"; + path = ""; + sourceTree = "SOURCE_ROOT"; }; OBJ_70 = { isa = "PBXBuildFile"; diff --git a/MessagePack.xcodeproj/xcshareddata/xcschemes/MessagePack.xcscheme b/MessagePack.xcodeproj/xcshareddata/xcschemes/MessagePack.xcscheme index beb0049..08d1d8a 100644 --- a/MessagePack.xcodeproj/xcshareddata/xcschemes/MessagePack.xcscheme +++ b/MessagePack.xcodeproj/xcshareddata/xcschemes/MessagePack.xcscheme @@ -1,33 +1,81 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Sources/MessagePack/Pack.swift b/Sources/MessagePack/Pack.swift index f688da4..567ed3f 100644 --- a/Sources/MessagePack/Pack.swift +++ b/Sources/MessagePack/Pack.swift @@ -80,12 +80,10 @@ public func pack(_ value: MessagePackValue) -> Data { return packPositiveInteger(value) case .float(let value): - let integerValue = unsafeBitCast(value, to: UInt32.self) - return Data([0xca]) + packInteger(UInt64(integerValue), parts: 4) + return Data([0xca]) + packInteger(UInt64(value.bitPattern), parts: 4) case .double(let value): - let integerValue = unsafeBitCast(value, to: UInt64.self) - return Data([0xcb]) + packInteger(integerValue, parts: 8) + return Data([0xcb]) + packInteger(value.bitPattern, parts: 8) case .string(let string): let utf8 = string.utf8 diff --git a/Sources/MessagePack/Unpack.swift b/Sources/MessagePack/Unpack.swift index 0aebdd1..35a7ed5 100644 --- a/Sources/MessagePack/Unpack.swift +++ b/Sources/MessagePack/Unpack.swift @@ -185,13 +185,13 @@ public func unpack(_ data: Data, compatibility: Bool = false) throws -> (value: // float 32 case 0xca: let (intValue, remainder) = try unpackInteger(data, count: 4) - let float = unsafeBitCast(UInt32(truncatingBitPattern: intValue), to: Float.self) + let float = Float(bitPattern: UInt32(truncatingBitPattern: intValue)) return (.float(float), remainder) // float 64 case 0xcb: let (intValue, remainder) = try unpackInteger(data, count: 8) - let double = unsafeBitCast(intValue, to: Double.self) + let double = Double(bitPattern: intValue) return (.double(double), remainder) // uint 8, 16, 32, 64