Bug Fix: Unregister observer correctly
Only unregister it if it was actually registered. Signed-off-by: Christopher Snowhill <kode54@gmail.com>
This commit is contained in:
parent
bfa9660437
commit
00d861efc0
2 changed files with 7 additions and 2 deletions
|
@ -40,6 +40,7 @@ NS_ASSUME_NONNULL_BEGIN
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
BOOL halveDSDVolume;
|
BOOL halveDSDVolume;
|
||||||
|
BOOL observersAdded;
|
||||||
|
|
||||||
void *hdcd_decoder;
|
void *hdcd_decoder;
|
||||||
|
|
||||||
|
|
|
@ -402,6 +402,8 @@ static void convert_be_to_le(uint8_t *buffer, size_t bitsPerSample, size_t bytes
|
||||||
halveDSDVolume = NO;
|
halveDSDVolume = NO;
|
||||||
|
|
||||||
[[NSUserDefaultsController sharedUserDefaultsController] addObserver:self forKeyPath:@"values.halveDSDVolume" options:(NSKeyValueObservingOptionInitial | NSKeyValueObservingOptionNew) context:kChunkListContext];
|
[[NSUserDefaultsController sharedUserDefaultsController] addObserver:self forKeyPath:@"values.halveDSDVolume" options:(NSKeyValueObservingOptionInitial | NSKeyValueObservingOptionNew) context:kChunkListContext];
|
||||||
|
|
||||||
|
observersAdded = YES;
|
||||||
}
|
}
|
||||||
|
|
||||||
return self;
|
return self;
|
||||||
|
@ -429,8 +431,10 @@ static void convert_be_to_le(uint8_t *buffer, size_t bitsPerSample, size_t bytes
|
||||||
if(tempData) {
|
if(tempData) {
|
||||||
free(tempData);
|
free(tempData);
|
||||||
}
|
}
|
||||||
|
if(observersAdded) {
|
||||||
[[NSUserDefaultsController sharedUserDefaultsController] removeObserver:self forKeyPath:@"values.halveDSDVolume" context:kChunkListContext];
|
[[NSUserDefaultsController sharedUserDefaultsController] removeObserver:self forKeyPath:@"values.halveDSDVolume" context:kChunkListContext];
|
||||||
|
observersAdded = NO;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
|
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
|
||||||
|
|
Loading…
Reference in a new issue