summaryrefslogtreecommitdiff
path: root/runtime/jit/jit_code_cache.h
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/jit/jit_code_cache.h')
-rw-r--r--runtime/jit/jit_code_cache.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/runtime/jit/jit_code_cache.h b/runtime/jit/jit_code_cache.h
index 3dd57121ca..6ca79d560f 100644
--- a/runtime/jit/jit_code_cache.h
+++ b/runtime/jit/jit_code_cache.h
@@ -356,6 +356,10 @@ class JitCodeCache {
bool IsOsrCompiled(ArtMethod* method) REQUIRES(!Locks::jit_lock_);
+ // Visit GC roots (except j.l.Class and j.l.String) held by JIT-ed code.
+ template<typename RootVisitorType>
+ EXPORT void VisitRootTables(RootVisitorType& visitor) NO_THREAD_SAFETY_ANALYSIS;
+
void SweepRootTables(IsMarkedVisitor* visitor)
REQUIRES(!Locks::jit_lock_)
REQUIRES_SHARED(Locks::mutator_lock_);
@@ -549,6 +553,11 @@ class JitCodeCache {
// Holds compiled code associated to the ArtMethod.
SafeMap<const void*, ArtMethod*> method_code_map_ GUARDED_BY(Locks::jit_lock_);
+ // MethodType-s referenced by a compiled code. A subset of method_code_map_ used to treat a
+ // MethodType as strongly reachable from the corresponding code.
+ SafeMap<const void*, std::vector<GcRoot<mirror::MethodType>>> method_types_map_
+ GUARDED_BY(Locks::jit_lock_);
+
// Holds compiled code associated to the ArtMethod. Used when pre-jitting
// methods whose entrypoints have the resolution stub.
SafeMap<ArtMethod*, const void*> saved_compiled_methods_map_ GUARDED_BY(Locks::jit_lock_);