Clean up Class::FindStaticField().
Previously we have wrapped the class pointer in a Handle
for the GetDirectInterface() call but we didn't wrap the
DexCache pointer. Since GetDirectInferface() call from
this function cannot cause thread suspension anyway, fix
the inconsistency by using raw pointers where possible
and asserting that no thread suspension takes place.
Test: Run standard ART test suite in gcstress mode.
Change-Id: Ie4c6101aabd6fa68733e4920db277f835793d943
diff --git a/runtime/class_linker.cc b/runtime/class_linker.cc
index fe7448f..95cb56b 100644
--- a/runtime/class_linker.cc
+++ b/runtime/class_linker.cc
@@ -7599,7 +7599,7 @@
}
if (is_static) {
- resolved = mirror::Class::FindStaticField(self, klass, dex_cache.Get(), field_idx);
+ resolved = mirror::Class::FindStaticField(self, klass.Get(), dex_cache.Get(), field_idx);
} else {
resolved = klass->FindInstanceField(dex_cache.Get(), field_idx);
}