diff options
-rw-r--r-- | runtime/verifier/method_verifier.cc | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/runtime/verifier/method_verifier.cc b/runtime/verifier/method_verifier.cc index 5d033bc..91170f0 100644 --- a/runtime/verifier/method_verifier.cc +++ b/runtime/verifier/method_verifier.cc @@ -1176,8 +1176,11 @@ bool MethodVerifier::SetTypesFromSignature() { // it's effectively considered initialized the instant we reach here (in the sense that we // can return without doing anything or call virtual methods). { - const RegType& reg_type = reg_types_.FromDescriptor(class_loader_->get(), descriptor, - false); + const RegType& reg_type = ResolveClassAndCheckAccess(iterator.GetTypeIdx()); + if (!reg_type.IsNonZeroReferenceTypes()) { + DCHECK(HasFailures()); + return false; + } reg_line->SetRegisterType(arg_start + cur_arg, reg_type); } break; |