diff options
author | Roman Zippel <zippel@linux-m68k.org> | 2007-01-10 23:15:31 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.osdl.org> | 2007-01-11 18:18:20 -0800 |
commit | 6fa1da8ea9318af6a0252f56cd2e689616346218 (patch) | |
tree | c2087f5f67fdb06082afc46266d0490cfbaa7bbd | |
parent | a2f3aa02576632cdb60bd3de1f4bf55e9ac65604 (diff) | |
download | op-kernel-dev-6fa1da8ea9318af6a0252f56cd2e689616346218.zip op-kernel-dev-6fa1da8ea9318af6a0252f56cd2e689616346218.tar.gz |
[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 a8ffc32..c0ae0a7 100644 --- a/scripts/kconfig/qconf.cc +++ b/scripts/kconfig/qconf.cc @@ -917,7 +917,7 @@ void ConfigView::updateListAll(void) } ConfigInfoView::ConfigInfoView(QWidget* parent, const char *name) - : Parent(parent, name), menu(0) + : Parent(parent, name), menu(0), sym(0) { if (name) { configSettings->beginGroup(name); @@ -925,8 +925,6 @@ ConfigInfoView::ConfigInfoView(QWidget* parent, const char *name) configSettings->endGroup(); connect(configApp, SIGNAL(aboutToQuit()), SLOT(saveSettings())); } - - has_dbg_info = 0; } void ConfigInfoView::saveSettings(void) @@ -955,13 +953,11 @@ void ConfigInfoView::setInfo(struct menu *m) if (menu == m) return; menu = m; - if (!menu) { - has_dbg_info = 0; + sym = NULL; + if (!menu) clear(); - } else { - has_dbg_info = 1; + else menuInfo(); - } } void ConfigInfoView::setSource(const QString& name) @@ -996,9 +992,6 @@ void ConfigInfoView::symbolInfo(void) { QString str; - if (!has_dbg_info) - return; - str += "<big>Symbol: <b>"; str += print_filter(sym->name); str += "</b></big><br><br>value: "; diff --git a/scripts/kconfig/qconf.h b/scripts/kconfig/qconf.h index a397edb..6fc1c5f 100644 --- a/scripts/kconfig/qconf.h +++ b/scripts/kconfig/qconf.h @@ -273,8 +273,6 @@ protected: struct symbol *sym; struct menu *menu; bool _showDebug; - - int has_dbg_info; }; class ConfigSearchWindow : public QDialog { |