summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastien Hertz <shertz@google.com>2014-04-25 08:14:11 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2014-04-25 08:14:11 +0000
commitda6e4feb6a02fed7f307e1ef3b90e716a99ba24c (patch)
tree3afc391bfd5d6ef2a0f512382805d7f85403194a
parent942c8e3723ad1e12039deef5754440dd8e1c546d (diff)
parent2ed76f95dd5a7edada82407a1853be803c9853a9 (diff)
downloadart-da6e4feb6a02fed7f307e1ef3b90e716a99ba24c.zip
art-da6e4feb6a02fed7f307e1ef3b90e716a99ba24c.tar.gz
art-da6e4feb6a02fed7f307e1ef3b90e716a99ba24c.tar.bz2
Merge "Resolve method's argument reference types"
-rw-r--r--runtime/verifier/method_verifier.cc7
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;