avm2: Propagate normal error for bad Multiname read in verifier
This commit is contained in:
parent
41bac2ce98
commit
24d194a8b1
|
@ -284,38 +284,33 @@ pub fn verify_method<'gc>(
|
|||
| AbcOp::Coerce { index: name_index } => {
|
||||
let multiname = method
|
||||
.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() {
|
||||
// This matches FP's error message
|
||||
return Err(Error::AvmError(verify_error(
|
||||
activation,
|
||||
"Error #1014: Class [] could not be found.",
|
||||
1014,
|
||||
)?));
|
||||
}
|
||||
|
||||
activation
|
||||
.domain()
|
||||
.get_class(&multiname, activation.context.gc_context)
|
||||
.ok_or_else(|| {
|
||||
Error::AvmError(
|
||||
verify_error(
|
||||
activation,
|
||||
&format!(
|
||||
"Error #1014: Class {} could not be found.",
|
||||
multiname
|
||||
.to_qualified_name(activation.context.gc_context)
|
||||
),
|
||||
1014,
|
||||
)
|
||||
.expect("Error should construct"),
|
||||
)
|
||||
})?;
|
||||
} else {
|
||||
return Err(make_error_1032(activation, name_index.0));
|
||||
if multiname.has_lazy_component() {
|
||||
// This matches FP's error message
|
||||
return Err(Error::AvmError(verify_error(
|
||||
activation,
|
||||
"Error #1014: Class [] could not be found.",
|
||||
1014,
|
||||
)?));
|
||||
}
|
||||
|
||||
activation
|
||||
.domain()
|
||||
.get_class(&multiname, activation.context.gc_context)
|
||||
.ok_or_else(|| {
|
||||
Error::AvmError(
|
||||
verify_error(
|
||||
activation,
|
||||
&format!(
|
||||
"Error #1014: Class {} could not be found.",
|
||||
multiname.to_qualified_name(activation.context.gc_context)
|
||||
),
|
||||
1014,
|
||||
)
|
||||
.expect("Error should construct"),
|
||||
)
|
||||
})?;
|
||||
}
|
||||
|
||||
_ => {}
|
||||
|
|
Loading…
Reference in New Issue