aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoman Zippel <zippel@linux-m68k.org>2007-01-11 02:15:31 -0500
committerLinus Torvalds <torvalds@woody.osdl.org>2007-01-11 21:18:20 -0500
commit6fa1da8ea9318af6a0252f56cd2e689616346218 (patch)
treec2087f5f67fdb06082afc46266d0490cfbaa7bbd
parenta2f3aa02576632cdb60bd3de1f4bf55e9ac65604 (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.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)
917} 917}
918 918
919ConfigInfoView::ConfigInfoView(QWidget* parent, const char *name) 919ConfigInfoView::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
932void ConfigInfoView::saveSettings(void) 930void 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
967void ConfigInfoView::setSource(const QString& name) 963void 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
280class ConfigSearchWindow : public QDialog { 278class ConfigSearchWindow : public QDialog {