diff options
Diffstat (limited to 'runtime/jit/jit_code_cache.h')
-rw-r--r-- | runtime/jit/jit_code_cache.h | 9 |
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_); |