summaryrefslogtreecommitdiff
path: root/runtime/interpreter/interpreter_switch_impl1.cc
diff options
context:
space:
mode:
author Vladimir Marko <vmarko@google.com> 2024-05-28 15:39:00 +0000
committer VladimĂ­r Marko <vmarko@google.com> 2024-05-31 12:14:53 +0000
commitea096e4d28d23ed289b418d24daa177e002f2672 (patch)
tree3466d6a9778feccc7c51ffe522f2f01751bbff38 /runtime/interpreter/interpreter_switch_impl1.cc
parentb801817fcb6647c252b6cae9051f9500c88057b1 (diff)
Avoid transaction records for all new objects.
Test: m test-art-host-gtest Test: testrunner.py --host --optimizing --interp-ac Bug: 181943478 Change-Id: I0a51f622812dd3be0844c9e7c79e3b569ac3f029
Diffstat (limited to 'runtime/interpreter/interpreter_switch_impl1.cc')
-rw-r--r--runtime/interpreter/interpreter_switch_impl1.cc11
1 files changed, 8 insertions, 3 deletions
diff --git a/runtime/interpreter/interpreter_switch_impl1.cc b/runtime/interpreter/interpreter_switch_impl1.cc
index 71d77e2064..9c5b5b3266 100644
--- a/runtime/interpreter/interpreter_switch_impl1.cc
+++ b/runtime/interpreter/interpreter_switch_impl1.cc
@@ -54,9 +54,14 @@ class ActiveTransactionChecker {
static void RecordArrayElementsInTransaction(ObjPtr<mirror::Object> array, int32_t count)
REQUIRES_SHARED(Locks::mutator_lock_);
- static void RecordAllocatedObject([[maybe_unused]] ObjPtr<mirror::Object> new_object)
+ static void RecordNewObject(ObjPtr<mirror::Object> new_object)
REQUIRES_SHARED(Locks::mutator_lock_) {
- GetClassLinker()->GetTransaction()->RecordAllocatedObject(new_object);
+ GetClassLinker()->GetTransaction()->RecordNewObject(new_object);
+ }
+
+ static void RecordNewArray(ObjPtr<mirror::Array> new_object)
+ REQUIRES_SHARED(Locks::mutator_lock_) {
+ GetClassLinker()->GetTransaction()->RecordNewArray(new_object);
}
private:
@@ -85,7 +90,7 @@ void ActiveTransactionChecker::RecordArrayElementsInTransaction(ObjPtr<mirror::O
DCHECK(array->IsArrayInstance());
DCHECK_LE(count, array->AsArray()->GetLength());
Transaction* transaction = GetClassLinker()->GetTransaction();
- if (!transaction->NeedsTransactionRecords(array.Ptr())) {
+ if (!transaction->ArrayNeedsTransactionRecords(array->AsArray())) {
return;
}
// No read barrier is needed for reading a chain of constant references