Make print_error safe by using the global writer

This is now possible since we fixed the deadlock problem.
This commit is contained in:
Philipp Oppermann
2016-10-26 09:07:55 +02:00
parent d96df500a7
commit 212dcfa592

View File

@@ -43,16 +43,15 @@ pub fn clear_screen() {
} }
} }
pub unsafe fn print_error(fmt: fmt::Arguments) { pub fn print_error(fmt: fmt::Arguments) {
use core::fmt::Write; use core::fmt::Write;
use core::mem;
let mut writer = Writer { let mut writer = WRITER.lock();
column_position: 0, let red = ColorCode::new(Color::Red, Color::Black);
color_code: ColorCode::new(Color::Red, Color::Black), let default_color = mem::replace(&mut writer.color_code, red);
buffer: Unique::new(0xb8000 as *mut _), writer.write_fmt(fmt).unwrap();
}; writer.color_code = default_color;
writer.new_line();
writer.write_fmt(fmt);
} }
#[allow(dead_code)] #[allow(dead_code)]