diff options
author | 2017-03-16 16:18:15 +0000 | |
---|---|---|
committer | 2017-03-23 15:25:27 +0000 | |
commit | f25cc730ff70f085daf527f69a02fdee69aee16b (patch) | |
tree | 2f36f61990add16e7519d8b93506d6049dd7764c /runtime/class_linker.h | |
parent | 7591bdadf72a2fe155f937b8dc66f6249cedd014 (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.h | 2 |
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 |