summaryrefslogtreecommitdiff
path: root/runtime/class_linker.h
diff options
context:
space:
mode:
author Vladimir Marko <vmarko@google.com> 2017-03-16 16:18:15 +0000
committer Vladimir Marko <vmarko@google.com> 2017-03-23 15:25:27 +0000
commitf25cc730ff70f085daf527f69a02fdee69aee16b (patch)
tree2f36f61990add16e7519d8b93506d6049dd7764c /runtime/class_linker.h
parent7591bdadf72a2fe155f937b8dc66f6249cedd014 (diff)
Deterministic DexCache in heap images.
Preload each slot in dex cache arrays with the candidate entry with the lowest index. Also fix a discrepancy where we used to keep an ArtField* in the DexCache if we kept the declaring class rather than based on the class referenced in the corresponding FieldId. This can result in accessing a field through a FieldId with an unresolved class as demonstrated by the regression test. Test: 159-app-image-fields Test: testrunner.py --host Bug: 30627598 Change-Id: I34735047cb064ff462cd9859e86a61ddf8615ecd
Diffstat (limited to 'runtime/class_linker.h')
-rw-r--r--runtime/class_linker.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/runtime/class_linker.h b/runtime/class_linker.h
index 6254acbb99..ef51d82461 100644
--- a/runtime/class_linker.h
+++ b/runtime/class_linker.h
@@ -247,7 +247,7 @@ class ClassLinker {
// result in the DexCache if found. Return null if not found.
mirror::String* LookupString(const DexFile& dex_file,
dex::StringIndex string_idx,
- Handle<mirror::DexCache> dex_cache)
+ ObjPtr<mirror::DexCache> dex_cache)
REQUIRES_SHARED(Locks::mutator_lock_);
// Resolve a Type with the given index from the DexFile, storing the