From ae10f58dc456a954d06ecc57376c8e77e9b243ae Mon Sep 17 00:00:00 2001 From: Frederik Seiffert Date: Mon, 12 Aug 2019 19:30:25 +0200 Subject: [PATCH] Fixed NSOperation calling removeObserver more than once. This would cause an error if/when -removeObserver:forKeyPath: is implemented to throw an error when unregistering non-registered observers. --- Source/NSOperation.m | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Source/NSOperation.m b/Source/NSOperation.m index 89e5f059e..6a7cc8aee 100644 --- a/Source/NSOperation.m +++ b/Source/NSOperation.m @@ -206,7 +206,10 @@ static NSArray *empty = nil; { NSOperation *op; - [self removeObserver: self forKeyPath: @"isFinished"]; + if (!internal->finished) + { + [self removeObserver: self forKeyPath: @"isFinished"]; + } while ((op = [internal->dependencies lastObject]) != nil) { [self removeDependency: op];