diff --git a/src/system/kernel/debug/blue_screen.cpp b/src/system/kernel/debug/blue_screen.cpp index 5f10ccd06a..bf263ecf5b 100644 --- a/src/system/kernel/debug/blue_screen.cpp +++ b/src/system/kernel/debug/blue_screen.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2005-2006, Axel Dörfler, axeld@pinc-software.de. All rights reserved. + * Copyright 2005-2007, Axel Dörfler, axeld@pinc-software.de. All rights reserved. * Distributed under the terms of the MIT License. */ @@ -486,7 +486,7 @@ blue_screen_init(void) } -void +status_t blue_screen_enter(bool debugOutput) { sScreen.attr = debugOutput ? 0xf0 : 0x0f; @@ -494,12 +494,16 @@ blue_screen_enter(bool debugOutput) sScreen.x = sScreen.y = 0; sScreen.state = CONSOLE_STATE_NORMAL; + if (sModule == NULL) + return B_NO_INIT; + sModule->get_size(&sScreen.columns, &sScreen.rows); #if !NO_CLEAR sModule->clear(sScreen.attr); #else sModule->fill_glyph(0, sScreen.y, sScreen.columns, 3, ' ', sScreen.attr); #endif + return B_OK; } diff --git a/src/system/kernel/debug/blue_screen.h b/src/system/kernel/debug/blue_screen.h index c0bc906996..ca713ac335 100644 --- a/src/system/kernel/debug/blue_screen.h +++ b/src/system/kernel/debug/blue_screen.h @@ -1,5 +1,5 @@ /* - * Copyright 2005-2006, Axel Dörfler, axeld@pinc-software.de. All rights reserved. + * Copyright 2005-2007, Axel Dörfler, axeld@pinc-software.de. All rights reserved. * Distributed under the terms of the MIT License. */ #ifndef BLUE_SCREEN_H @@ -14,7 +14,7 @@ extern "C" { #endif status_t blue_screen_init(void); -void blue_screen_enter(bool debugOutput); +status_t blue_screen_enter(bool debugOutput); char blue_screen_getchar(void); void blue_screen_putchar(char c); diff --git a/src/system/kernel/debug/debug.c b/src/system/kernel/debug/debug.c index 4fa622bb81..2bc20ed728 100644 --- a/src/system/kernel/debug/debug.c +++ b/src/system/kernel/debug/debug.c @@ -893,8 +893,8 @@ kernel_debugger(const char *message) } if (sBlueScreenOutput) { - sBlueScreenEnabled = true; - blue_screen_enter(false); + if (blue_screen_enter(false) == B_OK) + sBlueScreenEnabled = true; } if (message)