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 { |