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/mirror/class.h b/runtime/mirror/class.h
index 5235a3e..b66cdcf 100644
--- a/runtime/mirror/class.h
+++ b/runtime/mirror/class.h
@@ -1096,7 +1096,9 @@
// Finds the given static field in this class or superclass, only searches classes that
// have the same dex cache.
- static ArtField* FindStaticField(Thread* self, Handle<Class> klass, const DexCache* dex_cache,
+ static ArtField* FindStaticField(Thread* self,
+ Class* klass,
+ const DexCache* dex_cache,
uint32_t dex_field_idx)
SHARED_REQUIRES(Locks::mutator_lock_);