From 38e181c4d147a20345d2faac41c635e81a23e621 Mon Sep 17 00:00:00 2001 From: Koji Murata Date: Tue, 3 Oct 2017 13:05:50 +0900 Subject: [PATCH 1/3] avoid segmentation fault --- SwiftTask/SwiftTask.swift | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/SwiftTask/SwiftTask.swift b/SwiftTask/SwiftTask.swift index cb4d163..1b987ca 100644 --- a/SwiftTask/SwiftTask.swift +++ b/SwiftTask/SwiftTask.swift @@ -366,9 +366,10 @@ open class Task: Cancellable, CustomStringConvertible { var token: _HandlerToken? = nil self._machine.addProgressTupleHandler(&token, progressClosure) + weak var machine = _machine - canceller = C { [weak self] in - self?._machine.removeProgressTupleHandler(token) + canceller = C { + machine?.removeProgressTupleHandler(token) } return self From 5c335e1d676f95a69aaf6683e9d57b6e0d9b08c5 Mon Sep 17 00:00:00 2001 From: Yasuhiro Inami Date: Wed, 4 Oct 2017 20:27:40 +0900 Subject: [PATCH 2/3] [Test] Set MACOSX_DEPLOYMENT_TARGET = 10.10 for test targets --- SwiftTask.xcodeproj/project.pbxproj | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/SwiftTask.xcodeproj/project.pbxproj b/SwiftTask.xcodeproj/project.pbxproj index 35ec5a4..1b3c4b7 100644 --- a/SwiftTask.xcodeproj/project.pbxproj +++ b/SwiftTask.xcodeproj/project.pbxproj @@ -554,6 +554,7 @@ "$(inherited)", ); INFOPLIST_FILE = SwiftTaskTests/Info.plist; + MACOSX_DEPLOYMENT_TARGET = 10.10; PRODUCT_BUNDLE_IDENTIFIER = "com.inamiy.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; @@ -566,6 +567,7 @@ buildSettings = { COMBINE_HIDPI_IMAGES = YES; INFOPLIST_FILE = SwiftTaskTests/Info.plist; + MACOSX_DEPLOYMENT_TARGET = 10.10; PRODUCT_BUNDLE_IDENTIFIER = "com.inamiy.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; @@ -581,6 +583,7 @@ "$(inherited)", ); INFOPLIST_FILE = SwiftTaskTests/Info.plist; + MACOSX_DEPLOYMENT_TARGET = 10.10; PRODUCT_BUNDLE_IDENTIFIER = "com.inamiy.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = iphoneos; @@ -592,6 +595,7 @@ baseConfigurationReference = 1FFADCDE1C5CEC1B000B66BE /* UniversalFramework_Test.xcconfig */; buildSettings = { INFOPLIST_FILE = SwiftTaskTests/Info.plist; + MACOSX_DEPLOYMENT_TARGET = 10.10; PRODUCT_BUNDLE_IDENTIFIER = "com.inamiy.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = iphoneos; From 21753f10e5a8a1348e6249b8022e39f6ddfd4d57 Mon Sep 17 00:00:00 2001 From: Masayuki Uehara Date: Thu, 26 Oct 2017 12:34:49 +0900 Subject: [PATCH 3/3] Enabled to work with swift 4 --- SwiftTask.xcodeproj/project.pbxproj | 24 ++++++++++++++++++- .../xcshareddata/xcschemes/SwiftTask.xcscheme | 4 +++- SwiftTask/_StateMachine.swift | 2 +- SwiftTaskTests/SwiftTaskTests.swift | 4 ++-- 4 files changed, 29 insertions(+), 5 deletions(-) diff --git a/SwiftTask.xcodeproj/project.pbxproj b/SwiftTask.xcodeproj/project.pbxproj index 1b3c4b7..ac6b1ab 100644 --- a/SwiftTask.xcodeproj/project.pbxproj +++ b/SwiftTask.xcodeproj/project.pbxproj @@ -303,7 +303,7 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0700; - LastUpgradeCheck = 0800; + LastUpgradeCheck = 0900; ORGANIZATIONNAME = "Yasuhiro Inami"; TargetAttributes = { 1F46DED3199EDF1000F97868 = { @@ -433,13 +433,21 @@ CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; @@ -478,13 +486,21 @@ CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = YES; @@ -522,6 +538,7 @@ PRODUCT_BUNDLE_IDENTIFIER = "com.inamiy.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(PROJECT_NAME)"; SKIP_INSTALL = YES; + SWIFT_VERSION = 4.0; }; name = Debug; }; @@ -541,6 +558,7 @@ PRODUCT_BUNDLE_IDENTIFIER = "com.inamiy.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(PROJECT_NAME)"; SKIP_INSTALL = YES; + SWIFT_VERSION = 4.0; }; name = Release; }; @@ -558,6 +576,7 @@ PRODUCT_BUNDLE_IDENTIFIER = "com.inamiy.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; + SWIFT_VERSION = 4.0; }; name = Debug; }; @@ -571,6 +590,7 @@ PRODUCT_BUNDLE_IDENTIFIER = "com.inamiy.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; + SWIFT_VERSION = 4.0; }; name = Release; }; @@ -587,6 +607,7 @@ PRODUCT_BUNDLE_IDENTIFIER = "com.inamiy.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = iphoneos; + SWIFT_VERSION = 4.0; }; name = Debug; }; @@ -599,6 +620,7 @@ PRODUCT_BUNDLE_IDENTIFIER = "com.inamiy.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = iphoneos; + SWIFT_VERSION = 4.0; VALIDATE_PRODUCT = YES; }; name = Release; diff --git a/SwiftTask.xcodeproj/xcshareddata/xcschemes/SwiftTask.xcscheme b/SwiftTask.xcodeproj/xcshareddata/xcschemes/SwiftTask.xcscheme index 09eb84c..234c8fd 100644 --- a/SwiftTask.xcodeproj/xcshareddata/xcschemes/SwiftTask.xcscheme +++ b/SwiftTask.xcodeproj/xcshareddata/xcschemes/SwiftTask.xcscheme @@ -1,6 +1,6 @@ } for handler in self._progressTupleHandlers { - handler(oldProgress: oldProgress, newProgress: progress) + handler((oldProgress: oldProgress, newProgress: progress)) } } } diff --git a/SwiftTaskTests/SwiftTaskTests.swift b/SwiftTaskTests/SwiftTaskTests.swift index 50b689e..60d9342 100644 --- a/SwiftTaskTests/SwiftTaskTests.swift +++ b/SwiftTaskTests/SwiftTaskTests.swift @@ -536,7 +536,7 @@ class SwiftTaskTests: _TestCase let task = _interruptableTask(progressCount: 5) // 1st async task (5 progresses) // chain async-task with then - let task3 = task.then { _ -> _InterruptableTask in + let task3 = task.then { _,_ -> _InterruptableTask in let task2 = _interruptableTask(progressCount: 7) // 2st async task (7 progresses) return task2 } @@ -760,7 +760,7 @@ class SwiftTaskTests: _TestCase weak var innerTask: _InterruptableTask? // chain async-task with `then` - let task2 = task.then { _ -> _InterruptableTask in + let task2 = task.then { _,_ -> _InterruptableTask in innerTask = _interruptableTask(progressCount: 5) return innerTask! }