summaryrefslogtreecommitdiff
path: root/runtime/art_method.h
diff options
context:
space:
mode:
author Nicolas Geoffray <ngeoffray@google.com> 2017-08-14 18:52:32 +0000
committer Nicolas Geoffray <ngeoffray@google.com> 2017-08-14 18:52:32 +0000
commit7ef52f75dd6e981e1e8c7567f593c197e8a94dcc (patch)
tree9685b783f628e290c6307d6ead024aac749a11ab /runtime/art_method.h
parent0888cf1821d6622fd623db31000be19b9365f81c (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.h15
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