diff options
author | 2016-06-03 17:47:32 -0700 | |
---|---|---|
committer | 2016-06-06 11:26:32 -0700 | |
commit | c9dbb1df3b5c06ba122cacaf35b17cb53c6be3c6 (patch) | |
tree | d9b8f3c81c0abc7ce6839d0723271ee9740a267c /runtime/class_linker.h | |
parent | f102faf1bcbdb2149e3e7bf27b1819f621b7894b (diff) |
Revert "Revert "Hold dex caches live in class table""
Bug: 29083330
This reverts commit f102faf1bcbdb2149e3e7bf27b1819f621b7894b.
Change-Id: Ibc6d260247b3113beec7d33552061512a36c9ce8
Diffstat (limited to 'runtime/class_linker.h')
-rw-r--r-- | runtime/class_linker.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/runtime/class_linker.h b/runtime/class_linker.h index 9b5ca0eeab..5d4bca139e 100644 --- a/runtime/class_linker.h +++ b/runtime/class_linker.h @@ -377,7 +377,8 @@ class ClassLinker { SHARED_REQUIRES(Locks::mutator_lock_) REQUIRES(!dex_lock_, !Roles::uninterruptible_); - mirror::DexCache* RegisterDexFile(const DexFile& dex_file, LinearAlloc* linear_alloc) + mirror::DexCache* RegisterDexFile(const DexFile& dex_file, + mirror::ClassLoader* class_loader) REQUIRES(!dex_lock_) SHARED_REQUIRES(Locks::mutator_lock_); void RegisterDexFile(const DexFile& dex_file, Handle<mirror::DexCache> dex_cache) @@ -634,6 +635,11 @@ class ClassLinker { // Create the IMT and conflict tables for a class. void FillIMTAndConflictTables(mirror::Class* klass) SHARED_REQUIRES(Locks::mutator_lock_); + // Clear class table strong roots (other than classes themselves). This is done by dex2oat to + // allow pruning dex caches. + void ClearClassTableStrongRoots() const + REQUIRES(!Locks::classlinker_classes_lock_) + SHARED_REQUIRES(Locks::mutator_lock_); struct DexCacheData { // Weak root to the DexCache. Note: Do not decode this unnecessarily or else class unloading may |