diff options
author | 2024-05-28 15:39:00 +0000 | |
---|---|---|
committer | 2024-05-31 12:14:53 +0000 | |
commit | ea096e4d28d23ed289b418d24daa177e002f2672 (patch) | |
tree | 3466d6a9778feccc7c51ffe522f2f01751bbff38 /runtime/interpreter/interpreter_switch_impl1.cc | |
parent | b801817fcb6647c252b6cae9051f9500c88057b1 (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.cc | 11 |
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 |