diff options
Diffstat (limited to 'runtime/art_method.h')
| -rw-r--r-- | runtime/art_method.h | 43 |
1 files changed, 8 insertions, 35 deletions
diff --git a/runtime/art_method.h b/runtime/art_method.h index 11dcc35df5..17f343d442 100644 --- a/runtime/art_method.h +++ b/runtime/art_method.h @@ -131,12 +131,12 @@ class ArtMethod FINAL { return (GetAccessFlags() & kAccStatic) != 0; } - // Returns true if the method is a constructor. + // Returns true if the method is a constructor according to access flags. bool IsConstructor() { return (GetAccessFlags() & kAccConstructor) != 0; } - // Returns true if the method is a class initializer. + // Returns true if the method is a class initializer according to access flags. bool IsClassInitializer() { return IsConstructor() && IsStatic(); } @@ -322,6 +322,9 @@ class ArtMethod FINAL { // Number of 32bit registers that would be required to hold all the arguments static size_t NumArgRegisters(const StringPiece& shorty); + ALWAYS_INLINE uint32_t GetDexMethodIndexUnchecked() { + return dex_method_index_; + } ALWAYS_INLINE uint32_t GetDexMethodIndex() REQUIRES_SHARED(Locks::mutator_lock_); void SetDexMethodIndex(uint32_t new_idx) { @@ -348,22 +351,8 @@ class ArtMethod FINAL { bool HasSameDexCacheResolvedMethods(ArtMethod** other_cache, PointerSize pointer_size) REQUIRES_SHARED(Locks::mutator_lock_); - template <bool kWithCheck = true> - mirror::Class* GetDexCacheResolvedType(dex::TypeIndex type_idx, PointerSize pointer_size) - REQUIRES_SHARED(Locks::mutator_lock_); - void SetDexCacheResolvedTypes(GcRoot<mirror::Class>* new_dex_cache_types, - PointerSize pointer_size) - REQUIRES_SHARED(Locks::mutator_lock_); - bool HasDexCacheResolvedTypes(PointerSize pointer_size) REQUIRES_SHARED(Locks::mutator_lock_); - bool HasSameDexCacheResolvedTypes(ArtMethod* other, PointerSize pointer_size) - REQUIRES_SHARED(Locks::mutator_lock_); - bool HasSameDexCacheResolvedTypes(GcRoot<mirror::Class>* other_cache, PointerSize pointer_size) - REQUIRES_SHARED(Locks::mutator_lock_); - // Get the Class* from the type index into this method's dex cache. - mirror::Class* GetClassFromTypeIndex(dex::TypeIndex type_idx, - bool resolve, - PointerSize pointer_size) + mirror::Class* GetClassFromTypeIndex(dex::TypeIndex type_idx, bool resolve) REQUIRES_SHARED(Locks::mutator_lock_); // Returns true if this method has the same name and signature of the other method. @@ -414,12 +403,6 @@ class ArtMethod FINAL { * static_cast<size_t>(pointer_size)); } - static MemberOffset DexCacheResolvedTypesOffset(PointerSize pointer_size) { - return MemberOffset(PtrSizedFieldsOffset(pointer_size) + OFFSETOF_MEMBER( - PtrSizedFields, dex_cache_resolved_types_) / sizeof(void*) - * static_cast<size_t>(pointer_size)); - } - static MemberOffset DataOffset(PointerSize pointer_size) { return MemberOffset(PtrSizedFieldsOffset(pointer_size) + OFFSETOF_MEMBER( PtrSizedFields, data_) / sizeof(void*) * static_cast<size_t>(pointer_size)); @@ -555,8 +538,7 @@ class ArtMethod FINAL { const DexFile::CodeItem* GetCodeItem() REQUIRES_SHARED(Locks::mutator_lock_); - bool IsResolvedTypeIdx(dex::TypeIndex type_idx, PointerSize pointer_size) - REQUIRES_SHARED(Locks::mutator_lock_); + bool IsResolvedTypeIdx(dex::TypeIndex type_idx) REQUIRES_SHARED(Locks::mutator_lock_); int32_t GetLineNumFromDexPC(uint32_t dex_pc) REQUIRES_SHARED(Locks::mutator_lock_); @@ -577,8 +559,7 @@ class ArtMethod FINAL { // May cause thread suspension due to GetClassFromTypeIdx calling ResolveType this caused a large // number of bugs at call sites. - mirror::Class* GetReturnType(bool resolve, PointerSize pointer_size) - REQUIRES_SHARED(Locks::mutator_lock_); + mirror::Class* GetReturnType(bool resolve) REQUIRES_SHARED(Locks::mutator_lock_); mirror::ClassLoader* GetClassLoader() REQUIRES_SHARED(Locks::mutator_lock_); @@ -608,9 +589,6 @@ class ArtMethod FINAL { void CopyFrom(ArtMethod* src, PointerSize image_pointer_size) REQUIRES_SHARED(Locks::mutator_lock_); - ALWAYS_INLINE GcRoot<mirror::Class>* GetDexCacheResolvedTypes(PointerSize pointer_size) - REQUIRES_SHARED(Locks::mutator_lock_); - // Note, hotness_counter_ updates are non-atomic but it doesn't need to be precise. Also, // given that the counter is only 16 bits wide we can expect wrap-around in some // situations. Consumers of hotness_count_ must be able to deal with that. @@ -657,8 +635,6 @@ class ArtMethod FINAL { std::string JniLongName() REQUIRES_SHARED(Locks::mutator_lock_); - - // Update heap objects and non-entrypoint pointers by the passed in visitor for image relocation. // Does not use read barrier. template <typename Visitor> @@ -707,9 +683,6 @@ class ArtMethod FINAL { // Short cuts to declaring_class_->dex_cache_ member for fast compiled code access. ArtMethod** dex_cache_resolved_methods_; - // Short cuts to declaring_class_->dex_cache_ member for fast compiled code access. - GcRoot<mirror::Class>* dex_cache_resolved_types_; - // 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. void* data_; |