diff options
author | stuconnolly <stuart02@gmail.com> | 2012-01-11 23:03:33 +0000 |
---|---|---|
committer | stuconnolly <stuart02@gmail.com> | 2012-01-11 23:03:33 +0000 |
commit | 24837e4f269c7ad44c555066d7f5d3d9c4d2c139 (patch) | |
tree | c2eca971ab873825ea09a444c0c764e32e341baf /Source/SPGeneralPreferencePane.m | |
parent | 425a60ca9fe7b7e9883542c80a80328f9b6eb625 (diff) | |
download | sequelpro-24837e4f269c7ad44c555066d7f5d3d9c4d2c139.tar.gz sequelpro-24837e4f269c7ad44c555066d7f5d3d9c4d2c139.tar.bz2 sequelpro-24837e4f269c7ad44c555066d7f5d3d9c4d2c139.zip |
Protect against dodgy preference data that may case bounds exceptions when selecting the default favorite in the general preference pane.
Diffstat (limited to 'Source/SPGeneralPreferencePane.m')
-rw-r--r-- | Source/SPGeneralPreferencePane.m | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/Source/SPGeneralPreferencePane.m b/Source/SPGeneralPreferencePane.m index b87d6ab8..67c43881 100644 --- a/Source/SPGeneralPreferencePane.m +++ b/Source/SPGeneralPreferencePane.m @@ -77,15 +77,17 @@ [editMenuItem release]; // Select the default favorite from prefs - [defaultFavoritePopup selectItemAtIndex:(![prefs boolForKey:SPSelectLastFavoriteUsed]) ? ([prefs integerForKey:SPDefaultFavorite] + 2) : 0]; + [self updateDefaultFavoritePopupSelection]; } /** * Resets the default favorite popup button selection based on the user's preferences. */ -- (void)resetDefaultFavoritePopupSelection +- (void)updateDefaultFavoritePopupSelection { - [defaultFavoritePopup selectItemAtIndex:(![prefs boolForKey:SPSelectLastFavoriteUsed]) ? ([prefs integerForKey:SPDefaultFavorite] + 2) : 0]; + NSUInteger index = [prefs integerForKey:SPDefaultFavorite]; + + [defaultFavoritePopup selectItemAtIndex:(![prefs boolForKey:SPSelectLastFavoriteUsed] && index > 0 && index < [[defaultFavoritePopup itemArray] count]) ? index + 2 : 0]; } #pragma mark - |