summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Vladimir Marko <vmarko@google.com> 2022-04-14 10:13:15 +0100
committer Vladimir Marko <vmarko@google.com> 2022-04-21 07:39:09 +0000
commitb6e0e02a859866446b3022d543cbe1d95391fcb0 (patch)
tree5237e970a5ee93d9f685d4986b5b75eb07fd4a43
parenta23cf27371c4dba8fcc920d688b362926564107d (diff)
Do not require mutator lock for some `ArtField` fields.
Namely for `access_flags_` and `offset_`. The `ArtField` has not been a managed heap object for a very long time, so we do not need to guard these primitive fields with the mutator lock. And we similarly do not require the mutator lock for `ArtMethod::access_flags_` either. Test: Rely on TreeHugger. Change-Id: I6522dad83089a742131e6e8689db04a19bd30ead
-rw-r--r--runtime/art_field.h14
1 files changed, 7 insertions, 7 deletions
diff --git a/runtime/art_field.h b/runtime/art_field.h
index c8d8e8cef2..4e77e7f0a5 100644
--- a/runtime/art_field.h
+++ b/runtime/art_field.h
@@ -55,24 +55,24 @@ class ArtField final {
return access_flags_;
}
- void SetAccessFlags(uint32_t new_access_flags) REQUIRES_SHARED(Locks::mutator_lock_) {
+ void SetAccessFlags(uint32_t new_access_flags) {
// Not called within a transaction.
access_flags_ = new_access_flags;
}
- bool IsPublic() REQUIRES_SHARED(Locks::mutator_lock_) {
+ bool IsPublic() {
return (GetAccessFlags() & kAccPublic) != 0;
}
- bool IsStatic() REQUIRES_SHARED(Locks::mutator_lock_) {
+ bool IsStatic() {
return (GetAccessFlags() & kAccStatic) != 0;
}
- bool IsFinal() REQUIRES_SHARED(Locks::mutator_lock_) {
+ bool IsFinal() {
return (GetAccessFlags() & kAccFinal) != 0;
}
- bool IsPrivate() REQUIRES_SHARED(Locks::mutator_lock_) {
+ bool IsPrivate() {
return (GetAccessFlags() & kAccPrivate) != 0;
}
@@ -86,7 +86,7 @@ class ArtField final {
}
// Offset to field within an Object.
- MemberOffset GetOffset() REQUIRES_SHARED(Locks::mutator_lock_) {
+ MemberOffset GetOffset() {
return MemberOffset(offset_);
}
@@ -179,7 +179,7 @@ class ArtField final {
visitor.VisitRoot(declaring_class_.AddressWithoutBarrier());
}
- bool IsVolatile() REQUIRES_SHARED(Locks::mutator_lock_) {
+ bool IsVolatile() {
return (GetAccessFlags() & kAccVolatile) != 0;
}