From fd21eb02b4b769bf836c5f0491e9066046b4b946 Mon Sep 17 00:00:00 2001 From: David Fuhrmann <dfuhrmann@videolan.org> Date: Mon, 2 Mar 2015 22:45:03 +0100 Subject: [PATCH] macosx: fix rare crash in VLCTimeField initWithFrame: is not always the designated initializer, thus the object got improperly initialized. Use default initialization and simplify code. --- modules/gui/macosx/misc.h | 2 -- modules/gui/macosx/misc.m | 28 +++++++--------------------- 2 files changed, 7 insertions(+), 23 deletions(-) diff --git a/modules/gui/macosx/misc.h b/modules/gui/macosx/misc.h index a84437a963f2..bbad86122b68 100644 --- a/modules/gui/macosx/misc.h +++ b/modules/gui/macosx/misc.h @@ -188,8 +188,6 @@ } @property (readonly) BOOL timeRemaining; --(id)initWithFrame:(NSRect)frameRect; - - (void)setRemainingIdentifier:(NSString *)o_string; @end diff --git a/modules/gui/macosx/misc.m b/modules/gui/macosx/misc.m index 7e9794f49d97..9769172172ac 100644 --- a/modules/gui/macosx/misc.m +++ b/modules/gui/macosx/misc.m @@ -731,7 +731,8 @@ void _drawFrameInRect(NSRect frameRect) *****************************************************************************/ @implementation VLCTimeField -+ (void)initialize{ ++ (void)initialize +{ NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSDictionary *appDefaults = [NSDictionary dictionaryWithObjectsAndKeys: @"NO", @"DisplayTimeAsTimeRemaining", @@ -741,16 +742,6 @@ void _drawFrameInRect(NSRect frameRect) [defaults registerDefaults:appDefaults]; } -- (id)initWithFrame:(NSRect)frameRect -{ - if (self = [super initWithFrame:frameRect]) { - textAlignment = NSCenterTextAlignment; - o_remaining_identifier = @""; - } - - return self; -} - - (void)setRemainingIdentifier:(NSString *)o_string { o_remaining_identifier = o_string; @@ -793,24 +784,19 @@ void _drawFrameInRect(NSRect frameRect) [[[VLCMain sharedInstance] controls] goToSpecificTime: nil]; else { - if (![o_remaining_identifier isEqualToString: @""]) { - if ([[NSUserDefaults standardUserDefaults] boolForKey:o_remaining_identifier]) { - [[NSUserDefaults standardUserDefaults] setObject:@"NO" forKey:o_remaining_identifier]; - b_time_remaining = NO; - } else { - [[NSUserDefaults standardUserDefaults] setObject:@"YES" forKey:o_remaining_identifier]; - b_time_remaining = YES; - } - } else { + if (o_remaining_identifier) { + b_time_remaining = [[NSUserDefaults standardUserDefaults] boolForKey:o_remaining_identifier]; b_time_remaining = !b_time_remaining; [[NSUserDefaults standardUserDefaults] setObject:(b_time_remaining ? @"YES" : @"NO") forKey:o_remaining_identifier]; + } else { + b_time_remaining = !b_time_remaining; } } } - (BOOL)timeRemaining { - if (![o_remaining_identifier isEqualToString: @""]) + if (o_remaining_identifier) return [[NSUserDefaults standardUserDefaults] boolForKey:o_remaining_identifier]; else return b_time_remaining; -- GitLab