avm2: Make `early_resolve_interface` take in a `domain` directly

This commit is contained in:
Aaron Hill 2023-02-21 14:22:54 -06:00
parent c258423dc3
commit c52f1082c4
1 changed files with 4 additions and 4 deletions

View File

@ -307,7 +307,7 @@ impl<'gc> ClassObject<'gc> {
let interface_names = class.read().interfaces().to_vec(); let interface_names = class.read().interfaces().to_vec();
let mut interfaces = Vec::with_capacity(interface_names.len()); let mut interfaces = Vec::with_capacity(interface_names.len());
for interface_name in interface_names { for interface_name in interface_names {
interfaces.push(self.early_resolve_interface(scope, &interface_name)?); interfaces.push(self.early_resolve_interface(scope.domain(), &interface_name)?);
} }
if !interfaces.is_empty() { if !interfaces.is_empty() {
@ -340,7 +340,7 @@ impl<'gc> ClassObject<'gc> {
let super_interfaces: Result<Vec<_>, _> = iface_read let super_interfaces: Result<Vec<_>, _> = iface_read
.interfaces() .interfaces()
.iter() .iter()
.map(|super_iface| self.early_resolve_interface(scope, super_iface)) .map(|super_iface| self.early_resolve_interface(scope.domain(), super_iface))
.collect(); .collect();
interfaces.extend(super_interfaces?); interfaces.extend(super_interfaces?);
} }
@ -356,10 +356,10 @@ impl<'gc> ClassObject<'gc> {
// which is needed to resolve interfaces when constructing a (different) `ClassObject`. // which is needed to resolve interfaces when constructing a (different) `ClassObject`.
fn early_resolve_interface( fn early_resolve_interface(
&self, &self,
scope: ScopeChain<'gc>, domain: Domain<'gc>,
interface_name: &Multiname<'gc>, interface_name: &Multiname<'gc>,
) -> Result<GcCell<'gc, Class<'gc>>, Error<'gc>> { ) -> Result<GcCell<'gc, Class<'gc>>, Error<'gc>> {
let interface_class = scope.domain().get_class(interface_name)?; let interface_class = domain.get_class(interface_name)?;
let Some(interface_class) = interface_class else { let Some(interface_class) = interface_class else {
return Err(format!("Could not resolve interface {interface_name:?}").into()); return Err(format!("Could not resolve interface {interface_name:?}").into());