diff options
| author | Roman Zippel <zippel@linux-m68k.org> | 2007-01-11 02:15:31 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@woody.osdl.org> | 2007-01-11 21:18:20 -0500 |
| commit | 6fa1da8ea9318af6a0252f56cd2e689616346218 (patch) | |
| tree | c2087f5f67fdb06082afc46266d0490cfbaa7bbd | |
| parent | a2f3aa02576632cdb60bd3de1f4bf55e9ac65604 (diff) | |
[PATCH] qconf: (re)fix SIGSEGV on empty menu items
Back out the recent fix for this bug, fix it by correctly initialising
ConfigInfoView.sym.
Signed-off-by: Roman Zippel <zippel@linux-m68k.org>
Cc: "Cyrill V. Gorcunov" <gorcunov@gmail.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| -rw-r--r-- | scripts/kconfig/qconf.cc | 15 | ||||
| -rw-r--r-- | scripts/kconfig/qconf.h | 2 |
2 files changed, 4 insertions, 13 deletions
diff --git a/scripts/kconfig/qconf.cc b/scripts/kconfig/qconf.cc index a8ffc329666a..c0ae0a7ddb42 100644 --- a/scripts/kconfig/qconf.cc +++ b/scripts/kconfig/qconf.cc | |||
| @@ -917,7 +917,7 @@ void ConfigView::updateListAll(void) | |||
| 917 | } | 917 | } |
| 918 | 918 | ||
| 919 | ConfigInfoView::ConfigInfoView(QWidget* parent, const char *name) | 919 | ConfigInfoView::ConfigInfoView(QWidget* parent, const char *name) |
| 920 | : Parent(parent, name), menu(0) | 920 | : Parent(parent, name), menu(0), sym(0) |
| 921 | { | 921 | { |
| 922 | if (name) { | 922 | if (name) { |
| 923 | configSettings->beginGroup(name); | 923 | configSettings->beginGroup(name); |
| @@ -925,8 +925,6 @@ ConfigInfoView::ConfigInfoView(QWidget* parent, const char *name) | |||
| 925 | configSettings->endGroup(); | 925 | configSettings->endGroup(); |
| 926 | connect(configApp, SIGNAL(aboutToQuit()), SLOT(saveSettings())); | 926 | connect(configApp, SIGNAL(aboutToQuit()), SLOT(saveSettings())); |
| 927 | } | 927 | } |
| 928 | |||
| 929 | has_dbg_info = 0; | ||
| 930 | } | 928 | } |
| 931 | 929 | ||
| 932 | void ConfigInfoView::saveSettings(void) | 930 | void ConfigInfoView::saveSettings(void) |
| @@ -955,13 +953,11 @@ void ConfigInfoView::setInfo(struct menu *m) | |||
| 955 | if (menu == m) | 953 | if (menu == m) |
| 956 | return; | 954 | return; |
| 957 | menu = m; | 955 | menu = m; |
| 958 | if (!menu) { | 956 | sym = NULL; |
| 959 | has_dbg_info = 0; | 957 | if (!menu) |
| 960 | clear(); | 958 | clear(); |
| 961 | } else { | 959 | else |
| 962 | has_dbg_info = 1; | ||
| 963 | menuInfo(); | 960 | menuInfo(); |
| 964 | } | ||
| 965 | } | 961 | } |
| 966 | 962 | ||
| 967 | void ConfigInfoView::setSource(const QString& name) | 963 | void ConfigInfoView::setSource(const QString& name) |
| @@ -996,9 +992,6 @@ void ConfigInfoView::symbolInfo(void) | |||
| 996 | { | 992 | { |
| 997 | QString str; | 993 | QString str; |
| 998 | 994 | ||
| 999 | if (!has_dbg_info) | ||
| 1000 | return; | ||
| 1001 | |||
| 1002 | str += "<big>Symbol: <b>"; | 995 | str += "<big>Symbol: <b>"; |
| 1003 | str += print_filter(sym->name); | 996 | str += print_filter(sym->name); |
| 1004 | str += "</b></big><br><br>value: "; | 997 | str += "</b></big><br><br>value: "; |
diff --git a/scripts/kconfig/qconf.h b/scripts/kconfig/qconf.h index a397edb5adcf..6fc1c5f14425 100644 --- a/scripts/kconfig/qconf.h +++ b/scripts/kconfig/qconf.h | |||
| @@ -273,8 +273,6 @@ protected: | |||
| 273 | struct symbol *sym; | 273 | struct symbol *sym; |
| 274 | struct menu *menu; | 274 | struct menu *menu; |
| 275 | bool _showDebug; | 275 | bool _showDebug; |
| 276 | |||
| 277 | int has_dbg_info; | ||
| 278 | }; | 276 | }; |
| 279 | 277 | ||
| 280 | class ConfigSearchWindow : public QDialog { | 278 | class ConfigSearchWindow : public QDialog { |
