Skip to content

Commit 35374d4

Browse files
uefi-services: Change LOGGER from static mut to just static
1 parent 544130e commit 35374d4

File tree

1 file changed

+5
-15
lines changed

1 file changed

+5
-15
lines changed

uefi-services/src/lib.rs

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ static mut SYSTEM_TABLE: Option<SystemTable<Boot>> = None;
5454

5555
/// Global logger object
5656
#[cfg(feature = "logger")]
57-
static mut LOGGER: Option<uefi::logger::Logger> = None;
57+
static LOGGER: uefi::logger::Logger = uefi::logger::Logger::new();
5858

5959
/// Obtains a pointer to the system table.
6060
///
@@ -161,19 +161,11 @@ macro_rules! println {
161161
/// disable() on exit from UEFI boot services.
162162
#[cfg(feature = "logger")]
163163
unsafe fn init_logger(st: &mut SystemTable<Boot>) {
164-
let stdout = st.stdout();
165-
166-
// Construct the logger.
167-
let logger = {
168-
let logger = uefi::logger::Logger::new();
169-
logger.set_output(stdout);
170-
171-
LOGGER = Some(logger);
172-
LOGGER.as_ref().unwrap()
173-
};
164+
// Connect the logger to stdout.
165+
LOGGER.set_output(st.stdout());
174166

175167
// Set the logger.
176-
log::set_logger(logger).unwrap(); // Can only fail if already initialized.
168+
log::set_logger(&LOGGER).unwrap(); // Can only fail if already initialized.
177169

178170
// Set logger max level to level specified by log features
179171
log::set_max_level(log::STATIC_MAX_LEVEL);
@@ -191,9 +183,7 @@ unsafe extern "efiapi" fn exit_boot_services(_e: Event, _ctx: Option<NonNull<c_v
191183
SYSTEM_TABLE = None;
192184

193185
#[cfg(feature = "logger")]
194-
if let Some(ref mut logger) = LOGGER {
195-
logger.disable();
196-
}
186+
LOGGER.disable();
197187

198188
uefi::allocator::exit_boot_services();
199189
}

0 commit comments

Comments
 (0)