diff options
| author | 2017-08-14 18:52:32 +0000 | |
|---|---|---|
| committer | 2017-08-14 18:52:32 +0000 | |
| commit | 7ef52f75dd6e981e1e8c7567f593c197e8a94dcc (patch) | |
| tree | 9685b783f628e290c6307d6ead024aac749a11ab /runtime/art_method.h | |
| parent | 0888cf1821d6622fd623db31000be19b9365f81c (diff) | |
Revert "ART: Use proxy ArtMethod's data_ to store the interface method."
Broke a few tests with:
+dalvikvm64 F 08-14 18:36:32 136697 136697 art_method-inl.h:392] Check failed: interface_method->GetDeclaringClass()->IsAssignableFrom(GetDeclaringClass())
This reverts commit 0888cf1821d6622fd623db31000be19b9365f81c.
Change-Id: Idc93b6686392f9dfeca3bc11bd22104948fd9fd3
Diffstat (limited to 'runtime/art_method.h')
| -rw-r--r-- | runtime/art_method.h | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/runtime/art_method.h b/runtime/art_method.h index 7ffd585f1a..cac40e011a 100644 --- a/runtime/art_method.h +++ b/runtime/art_method.h @@ -458,15 +458,12 @@ class ArtMethod FINAL { SetDataPtrSize(table, pointer_size); } - ProfilingInfo* GetProfilingInfo(PointerSize pointer_size) REQUIRES_SHARED(Locks::mutator_lock_) { + ProfilingInfo* GetProfilingInfo(PointerSize pointer_size) { // Don't do a read barrier in the DCHECK, as GetProfilingInfo is called in places // where the declaring class is treated as a weak reference (accessing it with // a read barrier would either prevent unloading the class, or crash the runtime if // the GC wants to unload it). DCHECK(!IsNative<kWithoutReadBarrier>()); - if (UNLIKELY(IsProxyMethod())) { - return nullptr; - } return reinterpret_cast<ProfilingInfo*>(GetDataPtrSize(pointer_size)); } @@ -729,13 +726,9 @@ class ArtMethod FINAL { // Short cuts to declaring_class_->dex_cache_ member for fast compiled code access. mirror::MethodDexCacheType* dex_cache_resolved_methods_; - // Depending on the method type, the data is - // - native method: pointer to the JNI function registered to this method - // or a function to resolve the JNI function, - // - conflict method: ImtConflictTable, - // - abstract/interface method: the single-implementation if any, - // - proxy method: the original interface method or constructor, - // - other methods: the profiling data. + // Pointer to JNI function registered to this method, or a function to resolve the JNI function, + // or the profiling data for non-native methods, or an ImtConflictTable, or the + // single-implementation of an abstract/interface method. void* data_; // Method dispatch from quick compiled code invokes this pointer which may cause bridging into |