diff options
| -rw-r--r-- | runtime/art_method-inl.h | 5 | ||||
| -rw-r--r-- | runtime/art_method.h | 1 | ||||
| -rw-r--r-- | runtime/bit_memory_region.h | 2 | ||||
| -rw-r--r-- | runtime/class_linker-inl.h | 2 |
4 files changed, 5 insertions, 5 deletions
diff --git a/runtime/art_method-inl.h b/runtime/art_method-inl.h index 7ec3900aa9..950f1aa9f4 100644 --- a/runtime/art_method-inl.h +++ b/runtime/art_method-inl.h @@ -374,9 +374,10 @@ inline mirror::DexCache* ArtMethod::GetDexCache() { } } -template<ReadBarrierOption kReadBarrierOption> inline bool ArtMethod::IsProxyMethod() { - return GetDeclaringClass<kReadBarrierOption>()->IsProxyClass(); + // Avoid read barrier since the from-space version of the class will have the correct proxy class + // flags since they are constant for the lifetime of the class. + return GetDeclaringClass<kWithoutReadBarrier>()->IsProxyClass(); } inline ArtMethod* ArtMethod::GetInterfaceMethodIfProxy(PointerSize pointer_size) { diff --git a/runtime/art_method.h b/runtime/art_method.h index e4db2c7324..d4a65c8c38 100644 --- a/runtime/art_method.h +++ b/runtime/art_method.h @@ -251,7 +251,6 @@ class ArtMethod FINAL { return (GetAccessFlags() & kAccVarargs) != 0; } - template<ReadBarrierOption kReadBarrierOption = kWithReadBarrier> bool IsProxyMethod() REQUIRES_SHARED(Locks::mutator_lock_); bool SkipAccessChecks() { diff --git a/runtime/bit_memory_region.h b/runtime/bit_memory_region.h index 90a198193e..c3b5be458e 100644 --- a/runtime/bit_memory_region.h +++ b/runtime/bit_memory_region.h @@ -26,7 +26,7 @@ namespace art { class BitMemoryRegion FINAL : public ValueObject { public: BitMemoryRegion() = default; - BitMemoryRegion(MemoryRegion region, size_t bit_offset, size_t bit_size) { + ALWAYS_INLINE BitMemoryRegion(MemoryRegion region, size_t bit_offset, size_t bit_size) { bit_start_ = bit_offset % kBitsPerByte; const size_t start = bit_offset / kBitsPerByte; const size_t end = (bit_offset + bit_size + kBitsPerByte - 1) / kBitsPerByte; diff --git a/runtime/class_linker-inl.h b/runtime/class_linker-inl.h index 34b737c73e..3438810069 100644 --- a/runtime/class_linker-inl.h +++ b/runtime/class_linker-inl.h @@ -233,7 +233,7 @@ template<ReadBarrierOption kReadBarrierOption> ArtMethod* ClassLinker::FindMethodForProxy(ObjPtr<mirror::Class> proxy_class, ArtMethod* proxy_method) { DCHECK(proxy_class->IsProxyClass()); - DCHECK(proxy_method->IsProxyMethod<kReadBarrierOption>()); + DCHECK(proxy_method->IsProxyMethod()); { Thread* const self = Thread::Current(); ReaderMutexLock mu(self, *Locks::dex_lock_); |