summaryrefslogtreecommitdiffstats
path: root/scripts/kconfig
diff options
context:
space:
mode:
authorRoman Zippel <zippel@linux-m68k.org>2007-01-10 23:15:31 -0800
committerLinus Torvalds <torvalds@woody.osdl.org>2007-01-11 18:18:20 -0800
commit6fa1da8ea9318af6a0252f56cd2e689616346218 (patch)
treec2087f5f67fdb06082afc46266d0490cfbaa7bbd /scripts/kconfig
parenta2f3aa02576632cdb60bd3de1f4bf55e9ac65604 (diff)
downloadlinux-6fa1da8ea9318af6a0252f56cd2e689616346218.tar.bz2
[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>
Diffstat (limited to 'scripts/kconfig')
-rw-r--r--scripts/kconfig/qconf.cc15
-rw-r--r--scripts/kconfig/qconf.h2
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)
}
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 a397edb5adcf..6fc1c5f14425 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 {