From fb1ebcb9cc0d60842b286c54a5f7de9335d8d7c3 Mon Sep 17 00:00:00 2001 From: Nathan Adams Date: Mon, 8 Aug 2022 23:20:32 +0200 Subject: [PATCH] avm1: loadMovieNum with blank url is an unload, not a load - fixes #7337 --- core/src/avm1/activation.rs | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/core/src/avm1/activation.rs b/core/src/avm1/activation.rs index 7c7821313..07ec81192 100644 --- a/core/src/avm1/activation.rs +++ b/core/src/avm1/activation.rs @@ -1291,14 +1291,21 @@ impl<'a, 'gc, 'gc_context> Activation<'a, 'gc, 'gc_context> { } else if level_target > -1 { // `loadMovieNum` call. if let Some(clip_target) = clip_target { - let future = self.context.load_manager.load_movie_into_clip( - self.context.player.clone(), - clip_target, - Request::get(url.to_utf8_lossy().into_owned()), - None, - None, - ); - self.context.navigator.spawn_future(future); + if url.is_empty() { + // Blank URL on movie loads = unload! + if let Some(mut mc) = clip_target.as_movie_clip() { + mc.replace_with_movie(&mut self.context, None) + } + } else { + let future = self.context.load_manager.load_movie_into_clip( + self.context.player.clone(), + clip_target, + Request::get(url.to_utf8_lossy().into_owned()), + None, + None, + ); + self.context.navigator.spawn_future(future); + } } return Ok(FrameControl::Continue); }