From 698f2fe77ffc9b7f0dbcdcdcb01e257b4fc4bab6 Mon Sep 17 00:00:00 2001 From: Aparajita Fishman Date: Sat, 21 Aug 2010 19:39:02 -0400 Subject: [PATCH] Call to NS_initWithCoder MUST be first, later code relies on a properly constructed object. --- Tools/nib2cib/NSButton.j | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/Tools/nib2cib/NSButton.j b/Tools/nib2cib/NSButton.j index 87d490614..36984b132 100644 --- a/Tools/nib2cib/NSButton.j +++ b/Tools/nib2cib/NSButton.j @@ -165,26 +165,31 @@ _CPButtonBezelStyleHeights[CPHUDBezelStyle] = 20; - (id)initWithCoder:(CPCoder)aCoder { - // We need to do a bit of magic to determine if this is a checkbox or radio button. - var cell = [aCoder decodeObjectForKey:@"NSCell"], - alternateImage = [cell alternateImage]; + var self = [self NS_initWithCoder:aCoder]; - if ([alternateImage isKindOfClass:[NSButtonImageSource class]]) + if (self) { - if ([alternateImage imageName] === @"NSSwitch") - _isCheckBox = YES; + // We need to do a bit of magic to determine if this is a checkbox or radio button. + var cell = [aCoder decodeObjectForKey:@"NSCell"], + alternateImage = [cell alternateImage]; - else if ([alternateImage imageName] === @"NSRadioButton") + if ([alternateImage isKindOfClass:[NSButtonImageSource class]]) { - _isRadio = YES; - self._radioGroup = [CPRadioGroup new]; + if ([alternateImage imageName] === @"NSSwitch") + _isCheckBox = YES; + + else if ([alternateImage imageName] === @"NSRadioButton") + { + _isRadio = YES; + self._radioGroup = [CPRadioGroup new]; + } } + + [self setKeyEquivalent:[cell keyEquivalent]]; + _keyEquivalentModifierMask = [cell keyEquivalentModifierMask]; } - [self setKeyEquivalent:[cell keyEquivalent]]; - _keyEquivalentModifierMask = [cell keyEquivalentModifierMask]; - - return [self NS_initWithCoder:aCoder]; + return self; } - (Class)classForKeyedArchiver