summaryrefslogtreecommitdiff
path: root/runtime/class_linker.h
diff options
context:
space:
mode:
author Mathieu Chartier <mathieuc@google.com> 2016-06-03 17:47:32 -0700
committer Mathieu Chartier <mathieuc@google.com> 2016-06-06 11:26:32 -0700
commitc9dbb1df3b5c06ba122cacaf35b17cb53c6be3c6 (patch)
treed9b8f3c81c0abc7ce6839d0723271ee9740a267c /runtime/class_linker.h
parentf102faf1bcbdb2149e3e7bf27b1819f621b7894b (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.h8
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