Fixes to verifier and slowpaths for cts invoke tests.
Instructions are never rewritten, so that has been removed from the
verifier. Also, the slowpath now checks for access errors when it
can't properly resolve a method.
Change-Id: Ie38eacec8eb092ba23502471a0b27ca8ce38fe68
diff --git a/src/compiler.cc b/src/compiler.cc
index 4dd3a09..091aad9 100644
--- a/src/compiler.cc
+++ b/src/compiler.cc
@@ -673,7 +673,7 @@
DexCache* dex_cache = mUnit->class_linker_->FindDexCache(*mUnit->dex_file_);
ClassLoader* class_loader = soa.Decode<ClassLoader*>(mUnit->class_loader_);
return mUnit->class_linker_->ResolveMethod(*mUnit->dex_file_, method_idx, dex_cache,
- class_loader, type);
+ class_loader, NULL, type);
}
bool Compiler::ComputeInstanceFieldInfo(uint32_t field_idx, OatCompilationUnit* mUnit,
@@ -1140,7 +1140,7 @@
}
while (it.HasNextDirectMethod()) {
Method* method = class_linker->ResolveMethod(dex_file, it.GetMemberIndex(), dex_cache,
- class_loader, it.GetMethodInvokeType(class_def));
+ class_loader, NULL, it.GetMethodInvokeType(class_def));
if (method == NULL) {
CHECK(self->IsExceptionPending());
self->ClearException();
@@ -1149,7 +1149,7 @@
}
while (it.HasNextVirtualMethod()) {
Method* method = class_linker->ResolveMethod(dex_file, it.GetMemberIndex(), dex_cache,
- class_loader, it.GetMethodInvokeType(class_def));
+ class_loader, NULL, it.GetMethodInvokeType(class_def));
if (method == NULL) {
CHECK(self->IsExceptionPending());
self->ClearException();
@@ -1719,13 +1719,13 @@
}
while (it.HasNextDirectMethod()) {
Method* method = class_linker->ResolveMethod(dex_file, it.GetMemberIndex(), dex_cache,
- class_loader, it.GetMethodInvokeType(class_def));
+ class_loader, NULL, it.GetMethodInvokeType(class_def));
SetGcMapsMethod(dex_file, method);
it.Next();
}
while (it.HasNextVirtualMethod()) {
Method* method = class_linker->ResolveMethod(dex_file, it.GetMemberIndex(), dex_cache,
- class_loader, it.GetMethodInvokeType(class_def));
+ class_loader, NULL, it.GetMethodInvokeType(class_def));
SetGcMapsMethod(dex_file, method);
it.Next();
}