diff options
| author | 2017-08-14 18:52:52 +0000 | |
|---|---|---|
| committer | 2017-08-14 18:52:52 +0000 | |
| commit | 6b1382dcb24a44e552daaa8dca82eb63d8bf6b11 (patch) | |
| tree | bf8ec701ee2d1455f9d87e53241a55b46d1d07c5 /runtime/class_linker.h | |
| parent | a5d5fa3955ce7fefb11e12753367e0382d6765d5 (diff) | |
| parent | 7ef52f75dd6e981e1e8c7567f593c197e8a94dcc (diff) | |
Merge "Revert "ART: Use proxy ArtMethod's data_ to store the interface method.""
Diffstat (limited to 'runtime/class_linker.h')
| -rw-r--r-- | runtime/class_linker.h | 10 |
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 |