Remove Method's dex_cache_resolved_fields_
We no longer generate code to access dex_cache_resolved_fields_ and the
slow paths can access the dex cache with extra indirections. Removing
the field saves image space.
This change also requires Change I2e16e99d
Change-Id: Ic64df15f3982a2655942d7cd5157eb497f70af7d
diff --git a/src/class_linker.h b/src/class_linker.h
index c49c03f..0b16533 100644
--- a/src/class_linker.h
+++ b/src/class_linker.h
@@ -170,7 +170,8 @@
}
Field* ResolveField(uint32_t field_idx, const Method* referrer, bool is_static) {
- Field* resolved_field = referrer->GetDexCacheResolvedFields()->Get(field_idx);
+ Field* resolved_field =
+ referrer->GetDeclaringClass()->GetDexCache()->GetResolvedField(field_idx);
if (UNLIKELY(resolved_field == NULL)) {
Class* declaring_class = referrer->GetDeclaringClass();
DexCache* dex_cache = declaring_class->GetDexCache();
@@ -193,7 +194,8 @@
bool is_static);
Field* ResolveFieldJLS(uint32_t field_idx, const Method* referrer) {
- Field* resolved_field = referrer->GetDexCacheResolvedFields()->Get(field_idx);
+ Field* resolved_field =
+ referrer->GetDeclaringClass()->GetDexCache()->GetResolvedField(field_idx);
if (UNLIKELY(resolved_field == NULL)) {
Class* declaring_class = referrer->GetDeclaringClass();
DexCache* dex_cache = declaring_class->GetDexCache();