avm2: Propagate normal error for bad Multiname read in verifier

This commit is contained in:
Lord-McSweeney 2024-03-03 14:21:45 -08:00 committed by Lord-McSweeney
parent 41bac2ce98
commit 24d194a8b1
1 changed files with 25 additions and 30 deletions

View File

@ -284,9 +284,8 @@ pub fn verify_method<'gc>(
| AbcOp::Coerce { index: name_index } => { | AbcOp::Coerce { index: name_index } => {
let multiname = method let multiname = method
.translation_unit() .translation_unit()
.pool_maybe_uninitialized_multiname(name_index, &mut activation.context); .pool_maybe_uninitialized_multiname(name_index, &mut activation.context)?;
if let Ok(multiname) = multiname {
if multiname.has_lazy_component() { if multiname.has_lazy_component() {
// This matches FP's error message // This matches FP's error message
return Err(Error::AvmError(verify_error( return Err(Error::AvmError(verify_error(
@ -305,17 +304,13 @@ pub fn verify_method<'gc>(
activation, activation,
&format!( &format!(
"Error #1014: Class {} could not be found.", "Error #1014: Class {} could not be found.",
multiname multiname.to_qualified_name(activation.context.gc_context)
.to_qualified_name(activation.context.gc_context)
), ),
1014, 1014,
) )
.expect("Error should construct"), .expect("Error should construct"),
) )
})?; })?;
} else {
return Err(make_error_1032(activation, name_index.0));
}
} }
_ => {} _ => {}