summaryrefslogtreecommitdiff
path: root/runtime/class_linker.h
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/class_linker.h')
-rw-r--r--runtime/class_linker.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/runtime/class_linker.h b/runtime/class_linker.h
index 783ec745cf..66bcbe091f 100644
--- a/runtime/class_linker.h
+++ b/runtime/class_linker.h
@@ -479,6 +479,9 @@ class ClassLinker {
REQUIRES_SHARED(Locks::mutator_lock_);
std::string GetDescriptorForProxy(ObjPtr<mirror::Class> proxy_class)
REQUIRES_SHARED(Locks::mutator_lock_);
+ ArtMethod* FindMethodForProxy(ArtMethod* proxy_method)
+ REQUIRES(!Locks::dex_lock_)
+ REQUIRES_SHARED(Locks::mutator_lock_);
// Get the oat code for a method when its class isn't yet initialized.
const void* GetQuickOatCodeFor(ArtMethod* method)
@@ -672,6 +675,7 @@ class ClassLinker {
DexCacheData()
: weak_root(nullptr),
dex_file(nullptr),
+ resolved_methods(nullptr),
class_table(nullptr) { }
// Check if the data is valid.
@@ -682,9 +686,11 @@ class ClassLinker {
// Weak root to the DexCache. Note: Do not decode this unnecessarily or else class unloading may
// not work properly.
jweak weak_root;
- // The following field caches the DexCache's field here to avoid unnecessary jweak decode that
- // triggers read barriers (and marks them alive unnecessarily and messes with class unloading.)
+ // The following two fields are caches to the DexCache's fields and here to avoid unnecessary
+ // jweak decode that triggers read barriers (and mark them alive unnecessarily and mess with
+ // class unloading.)
const DexFile* dex_file;
+ mirror::MethodDexCacheType* resolved_methods;
// Identify the associated class loader's class table. This is used to make sure that
// the Java call to native DexCache.setResolvedType() inserts the resolved type in that
// class table. It is also used to make sure we don't register the same dex cache with