summaryrefslogtreecommitdiff
path: root/runtime/class_linker.h
diff options
context:
space:
mode:
author Vladimir Marko <vmarko@google.com> 2016-12-08 11:39:42 +0000
committer Vladimir Marko <vmarko@google.com> 2017-03-10 12:59:37 +0000
commit1aea3510b8dd0c512cec61c91c5ef1f1e5d53d64 (patch)
tree94cbab7c3097ce7d3a1feb1a69f28406644af085 /runtime/class_linker.h
parentd1d4530ffa97729aa8944932a7ac2009ae51c7e3 (diff)
Hash-based DexCache field array.
Test: m test-art-host, both AOT and interpreter Test: m test-art-target, both AOT and interpreter Test: m valgrind-test-art-host Bug: 30627598 Change-Id: If992f091aadd862d17b09928d21659573dd285a0
Diffstat (limited to 'runtime/class_linker.h')
-rw-r--r--runtime/class_linker.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/runtime/class_linker.h b/runtime/class_linker.h
index a5d26c7a88..6254acbb99 100644
--- a/runtime/class_linker.h
+++ b/runtime/class_linker.h
@@ -333,7 +333,7 @@ class ClassLinker {
REQUIRES_SHARED(Locks::mutator_lock_)
REQUIRES(!Locks::dex_lock_, !Roles::uninterruptible_);
- ArtField* GetResolvedField(uint32_t field_idx, ObjPtr<mirror::DexCache> dex_cache)
+ ArtField* LookupResolvedField(uint32_t field_idx, ArtMethod* referrer, bool is_static)
REQUIRES_SHARED(Locks::mutator_lock_);
ArtField* ResolveField(uint32_t field_idx, ArtMethod* referrer, bool is_static)
REQUIRES_SHARED(Locks::mutator_lock_)
@@ -842,6 +842,13 @@ class ClassLinker {
REQUIRES(!Locks::classlinker_classes_lock_)
REQUIRES_SHARED(Locks::mutator_lock_);
+ // Find a field by its field index.
+ ArtField* LookupResolvedField(uint32_t field_idx,
+ ObjPtr<mirror::DexCache> dex_cache,
+ ObjPtr<mirror::ClassLoader> class_loader,
+ bool is_static)
+ REQUIRES_SHARED(Locks::mutator_lock_);
+
void RegisterDexFileLocked(const DexFile& dex_file,
ObjPtr<mirror::DexCache> dex_cache,
ObjPtr<mirror::ClassLoader> class_loader)