From a50ef55ad47f5bffc83607cdb003feb2ccb9bfca Mon Sep 17 00:00:00 2001 From: hodasemi Date: Thu, 18 Apr 2024 08:02:12 +0200 Subject: [PATCH] Don't error out if weak handle isn't present --- src/states.rs | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/states.rs b/src/states.rs index 76e9eec..2556827 100644 --- a/src/states.rs +++ b/src/states.rs @@ -356,12 +356,16 @@ impl States { let logging = self.log_state_change; Ok(Box::new(move || { - Self::_set_state( - weak_state.as_ref().map(|w| w.upgrade()).flatten(), - &mut *weak_current_state.upgrade().unwrap().lock().unwrap(), - gui_handler.as_ref().map(|h| h.upgrade()).flatten(), - logging, - ) + if let Some(current) = weak_current_state.upgrade() { + Self::_set_state( + weak_state.as_ref().map(|w| w.upgrade()).flatten(), + &mut *current.lock().unwrap(), + gui_handler.as_ref().map(|h| h.upgrade()).flatten(), + logging, + )?; + } + + Ok(()) })) } }