core: ABC files should resolve at the time of discovery, not on the action queue.

This commit is contained in:
David Wendt 2020-08-16 00:47:06 -04:00 committed by Mike Welsh
parent 7e898457b0
commit e915a07d4f
3 changed files with 6 additions and 38 deletions

View File

@ -342,13 +342,6 @@ pub enum ActionType<'gc> {
method: &'static str,
args: Vec<Value<'gc>>,
},
/// AVM2 ABC files.
DoABC {
name: String,
is_lazy_initialize: bool,
abc: SwfSlice,
},
}
impl fmt::Debug for ActionType<'_> {
@ -382,16 +375,6 @@ impl fmt::Debug for ActionType<'_> {
.field("method", method)
.field("args", args)
.finish(),
ActionType::DoABC {
name,
is_lazy_initialize,
abc,
} => f
.debug_struct("ActionType::DoABC")
.field("name", name)
.field("is_lazy_initialize", is_lazy_initialize)
.field("bytecode", abc)
.finish(),
}
}
}

View File

@ -4,7 +4,7 @@ use crate::avm1::{
};
use crate::avm2::Activation as Avm2Activation;
use crate::avm2::{
Error as Avm2Error, Namespace as Avm2Namespace, Object as Avm2Object, QName as Avm2QName,
Avm2, Error as Avm2Error, Namespace as Avm2Namespace, Object as Avm2Object, QName as Avm2QName,
StageObject as Avm2StageObject, TObject as Avm2TObject, Value as Avm2Value,
};
use crate::backend::audio::AudioStreamHandle;
@ -476,15 +476,11 @@ impl<'gc> MovieClip<'gc> {
"Invalid source or tag length when running init action",
)
})?;
context.action_queue.queue_actions(
self.into(),
ActionType::DoABC {
name,
is_lazy_initialize,
abc: slice,
},
false,
);
if let Err(e) = Avm2::load_abc(slice, &name, is_lazy_initialize, context) {
log::warn!("Error loading ABC file: {}", e);
}
Ok(())
}

View File

@ -960,17 +960,6 @@ impl Player {
&args,
);
}
// DoABC code
ActionType::DoABC {
name,
is_lazy_initialize,
abc,
} => {
if let Err(e) = Avm2::load_abc(abc, &name, is_lazy_initialize, context) {
log::warn!("Error loading ABC file: {}", e);
}
}
}
}
}