Fix the case where the user selects no modules in Kconfig at all.

Until now, the build would break, and even if it didn't the ELF would
triple-fault in QEMU.

Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>



git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3216 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
Uwe Hermann 2008-04-04 16:49:09 +00:00
parent 4afb7fb761
commit 6c44dfb649
1 changed files with 11 additions and 4 deletions

View File

@ -72,6 +72,7 @@ static void print_menu(void)
for (i = 0; i < ARRAY_SIZE(modules); i++) for (i = 0; i < ARRAY_SIZE(modules); i++)
ptr += sprintf(ptr, "F%d: %s ", i + 1, modules[i]->name); ptr += sprintf(ptr, "F%d: %s ", i + 1, modules[i]->name);
if (ARRAY_SIZE(modules) != 0)
mvprintw(23, 0, menu); mvprintw(23, 0, menu);
#ifdef CONFIG_SHOW_DATE_TIME #ifdef CONFIG_SHOW_DATE_TIME
@ -121,6 +122,9 @@ static void header(int row, const char *str)
static void redraw_module(void) static void redraw_module(void)
{ {
if (ARRAY_SIZE(modules) == 0)
return;
wclear(modwin); wclear(modwin);
modules[curwin]->redraw(modwin); modules[curwin]->redraw(modwin);
refresh(); refresh();
@ -133,6 +137,7 @@ static void loop(void)
center(0, "coreinfo v0.1"); center(0, "coreinfo v0.1");
print_menu(); print_menu();
if (ARRAY_SIZE(modules) != 0)
modules[curwin]->redraw(modwin); modules[curwin]->redraw(modwin);
refresh(); refresh();
@ -145,14 +150,16 @@ static void loop(void)
if (key >= KEY_F(1) && key <= KEY_F(9)) { if (key >= KEY_F(1) && key <= KEY_F(9)) {
unsigned char ch = key - KEY_F(1); unsigned char ch = key - KEY_F(1);
if (ch < ARRAY_SIZE(modules)) { if (ch <= ARRAY_SIZE(modules)) {
if (ch == ARRAY_SIZE(modules))
continue;
curwin = ch; curwin = ch;
redraw_module(); redraw_module();
continue; continue;
} }
} }
if (modules[curwin]->handle) if (ARRAY_SIZE(modules) != 0 && modules[curwin]->handle)
if (modules[curwin]->handle(key)) if (modules[curwin]->handle(key))
redraw_module(); redraw_module();
} }