desktop: Replaced most unwraps with expects or ? in main.rs

This commit is contained in:
Nathan Adams 2022-12-30 23:45:33 +01:00
parent 724609e323
commit 48d8cb54f4
1 changed files with 26 additions and 19 deletions

View File

@ -162,9 +162,13 @@ fn pick_file() -> Option<PathBuf> {
fn load_movie(url: &Url, opt: &Opt) -> Result<SwfMovie, Error> { fn load_movie(url: &Url, opt: &Opt) -> Result<SwfMovie, Error> {
let mut movie = if url.scheme() == "file" { let mut movie = if url.scheme() == "file" {
SwfMovie::from_path(url.to_file_path().unwrap(), None) SwfMovie::from_path(
.map_err(|e| anyhow!(e.to_string())) url.to_file_path()
.context("Couldn't load swf")? .map_err(|_| anyhow!("Invalid swf path"))?,
None,
)
.map_err(|e| anyhow!(e.to_string()))
.context("Couldn't load swf")?
} else { } else {
let proxy = opt.proxy.as_ref().and_then(|url| url.as_str().parse().ok()); let proxy = opt.proxy.as_ref().and_then(|url| url.as_str().parse().ok());
let builder = HttpClient::builder() let builder = HttpClient::builder()
@ -291,14 +295,14 @@ impl App {
let _ = event_loop_proxy.send_event(RuffleEvent::OnMetadata(swf_header.clone())); let _ = event_loop_proxy.send_event(RuffleEvent::OnMetadata(swf_header.clone()));
}; };
player.lock().unwrap().fetch_root_movie( player.lock().expect("Cannot reenter").fetch_root_movie(
movie_url.to_string(), movie_url.to_string(),
parse_parameters(&opt).collect(), parse_parameters(&opt).collect(),
Box::new(on_metadata), Box::new(on_metadata),
); );
CALLSTACK.with(|callstack| { CALLSTACK.with(|callstack| {
*callstack.borrow_mut() = Some(player.lock().unwrap().callstack()); *callstack.borrow_mut() = Some(player.lock().expect("Cannot reenter").callstack());
}) })
} }
@ -338,7 +342,7 @@ impl App {
.. ..
} if modifiers.alt() => { } if modifiers.alt() => {
if !fullscreen_down { if !fullscreen_down {
self.player.lock().unwrap().update(|uc| { self.player.lock().expect("Cannot reenter").update(|uc| {
uc.stage.toggle_display_state(uc); uc.stage.toggle_display_state(uc);
}); });
} }
@ -356,7 +360,7 @@ impl App {
state: ElementState::Pressed, state: ElementState::Pressed,
virtual_keycode: Some(VirtualKeyCode::Escape), virtual_keycode: Some(VirtualKeyCode::Escape),
.. ..
} => self.player.lock().unwrap().update(|uc| { } => self.player.lock().expect("Cannot reenter").update(|uc| {
uc.stage.set_display_state(uc, StageDisplayState::Normal); uc.stage.set_display_state(uc, StageDisplayState::Normal);
}), }),
_ => (), _ => (),
@ -365,7 +369,10 @@ impl App {
match event { match event {
winit::event::Event::LoopDestroyed => { winit::event::Event::LoopDestroyed => {
self.player.lock().unwrap().flush_shared_objects(); self.player
.lock()
.expect("Cannot reenter")
.flush_shared_objects();
shutdown(); shutdown();
return; return;
} }
@ -376,7 +383,7 @@ impl App {
let dt = new_time.duration_since(time).as_micros(); let dt = new_time.duration_since(time).as_micros();
if dt > 0 { if dt > 0 {
time = new_time; time = new_time;
let mut player_lock = self.player.lock().unwrap(); let mut player_lock = self.player.lock().expect("Cannot reenter");
player_lock.tick(dt as f64 / 1000.0); player_lock.tick(dt as f64 / 1000.0);
next_frame_time = new_time + player_lock.time_til_next_frame(); next_frame_time = new_time + player_lock.time_til_next_frame();
if player_lock.needs_render() { if player_lock.needs_render() {
@ -389,7 +396,7 @@ impl App {
winit::event::Event::RedrawRequested(_) => { winit::event::Event::RedrawRequested(_) => {
// Don't render when minimized to avoid potential swap chain errors in `wgpu`. // Don't render when minimized to avoid potential swap chain errors in `wgpu`.
if !minimized { if !minimized {
self.player.lock().unwrap().render(); self.player.lock().expect("Cannot reenter").render();
#[cfg(feature = "tracy")] #[cfg(feature = "tracy")]
tracing_tracy::client::Client::running() tracing_tracy::client::Client::running()
.expect("tracy client must be running") .expect("tracy client must be running")
@ -407,7 +414,7 @@ impl App {
minimized = size.width == 0 && size.height == 0; minimized = size.width == 0 && size.height == 0;
let viewport_scale_factor = self.window.scale_factor(); let viewport_scale_factor = self.window.scale_factor();
let mut player_lock = self.player.lock().unwrap(); let mut player_lock = self.player.lock().expect("Cannot reenter");
player_lock.set_viewport_dimensions(ViewportDimensions { player_lock.set_viewport_dimensions(ViewportDimensions {
width: size.width, width: size.width,
height: size.height, height: size.height,
@ -416,7 +423,7 @@ impl App {
self.window.request_redraw(); self.window.request_redraw();
} }
WindowEvent::CursorMoved { position, .. } => { WindowEvent::CursorMoved { position, .. } => {
let mut player_lock = self.player.lock().unwrap(); let mut player_lock = self.player.lock().expect("Cannot reenter");
mouse_pos = position; mouse_pos = position;
let event = PlayerEvent::MouseMove { let event = PlayerEvent::MouseMove {
x: position.x, x: position.x,
@ -429,7 +436,7 @@ impl App {
} }
WindowEvent::MouseInput { button, state, .. } => { WindowEvent::MouseInput { button, state, .. } => {
use ruffle_core::events::MouseButton as RuffleMouseButton; use ruffle_core::events::MouseButton as RuffleMouseButton;
let mut player_lock = self.player.lock().unwrap(); let mut player_lock = self.player.lock().expect("Cannot reenter");
let x = mouse_pos.x; let x = mouse_pos.x;
let y = mouse_pos.y; let y = mouse_pos.y;
let button = match button { let button = match button {
@ -449,7 +456,7 @@ impl App {
} }
WindowEvent::MouseWheel { delta, .. } => { WindowEvent::MouseWheel { delta, .. } => {
use ruffle_core::events::MouseWheelDelta; use ruffle_core::events::MouseWheelDelta;
let mut player_lock = self.player.lock().unwrap(); let mut player_lock = self.player.lock().expect("Cannot reenter");
let delta = match delta { let delta = match delta {
MouseScrollDelta::LineDelta(_, dy) => { MouseScrollDelta::LineDelta(_, dy) => {
MouseWheelDelta::Lines(dy.into()) MouseWheelDelta::Lines(dy.into())
@ -463,7 +470,7 @@ impl App {
} }
} }
WindowEvent::CursorLeft { .. } => { WindowEvent::CursorLeft { .. } => {
let mut player_lock = self.player.lock().unwrap(); let mut player_lock = self.player.lock().expect("Cannot reenter");
player_lock.handle_event(PlayerEvent::MouseLeave); player_lock.handle_event(PlayerEvent::MouseLeave);
if player_lock.needs_render() { if player_lock.needs_render() {
self.window.request_redraw(); self.window.request_redraw();
@ -472,7 +479,7 @@ impl App {
// Allow KeyboardInput.modifiers (ModifiersChanged event not functional yet). // Allow KeyboardInput.modifiers (ModifiersChanged event not functional yet).
#[allow(deprecated)] #[allow(deprecated)]
WindowEvent::KeyboardInput { input, .. } => { WindowEvent::KeyboardInput { input, .. } => {
let mut player_lock = self.player.lock().unwrap(); let mut player_lock = self.player.lock().expect("Cannot reenter");
if let Some(key) = input.virtual_keycode { if let Some(key) = input.virtual_keycode {
let key_code = winit_to_ruffle_key_code(key); let key_code = winit_to_ruffle_key_code(key);
let key_char = winit_key_to_char( let key_char = winit_key_to_char(
@ -494,7 +501,7 @@ impl App {
} }
} }
WindowEvent::ReceivedCharacter(codepoint) => { WindowEvent::ReceivedCharacter(codepoint) => {
let mut player_lock = self.player.lock().unwrap(); let mut player_lock = self.player.lock().expect("Cannot reenter");
let event = PlayerEvent::TextInput { codepoint }; let event = PlayerEvent::TextInput { codepoint };
player_lock.handle_event(event); player_lock.handle_event(event);
if player_lock.needs_render() { if player_lock.needs_render() {
@ -538,7 +545,7 @@ impl App {
let viewport_size = self.window.inner_size(); let viewport_size = self.window.inner_size();
let viewport_scale_factor = self.window.scale_factor(); let viewport_scale_factor = self.window.scale_factor();
let mut player_lock = self.player.lock().unwrap(); let mut player_lock = self.player.lock().expect("Cannot reenter");
player_lock.set_viewport_dimensions(ViewportDimensions { player_lock.set_viewport_dimensions(ViewportDimensions {
width: viewport_size.width, width: viewport_size.width,
height: viewport_size.height, height: viewport_size.height,
@ -813,7 +820,7 @@ fn run_timedemo(opt: Opt) -> Result<(), Error> {
.with_autoplay(true) .with_autoplay(true)
.build(); .build();
let mut player_lock = player.lock().unwrap(); let mut player_lock = player.lock().expect("Cannot reenter");
println!("Running {}...", path.to_string_lossy()); println!("Running {}...", path.to_string_lossy());