diff options
| author | 2024-05-14 16:46:15 +0200 | |
|---|---|---|
| committer | 2024-05-17 05:52:24 +0000 | |
| commit | 382f0db56cb95d0f1062ce46c73bc21705c87cef (patch) | |
| tree | af1ed12f59c3a8a90946560001a53a98ffdbce0a /runtime/mirror/array-inl.h | |
| parent | e6374e9c089c98729068fc25fc981e78b27d6a70 (diff) | |
Move transaction records from `Runtime` to `AotClassLinker`.
Keep a simple flag for active transaction in `Runtime` but
move all other transaction data to `AotClassLinker`.
Make `IsActiveTransaction()` a pre-requisite for calling
`IsTransactionAborted()`.
Eliminate `AbortTransactionAndThrowAbortError()` by inlining
into `AbortTransactionV()` and rewriting other callers to
use `AbortTransactionF()` instead.
Separate transaction-related test code to its own files.
Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing
Change-Id: Ie6ee421fcfed1599049ab50ca692f19c71f395ce
Diffstat (limited to 'runtime/mirror/array-inl.h')
| -rw-r--r-- | runtime/mirror/array-inl.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/runtime/mirror/array-inl.h b/runtime/mirror/array-inl.h index 579b1536a3..830a7e5fb6 100644 --- a/runtime/mirror/array-inl.h +++ b/runtime/mirror/array-inl.h @@ -24,6 +24,7 @@ #include "base/bit_utils.h" #include "base/casts.h" #include "class.h" +#include "class_linker.h" #include "obj_ptr-inl.h" #include "runtime.h" #include "thread-current-inl.h" @@ -99,7 +100,7 @@ inline void PrimitiveArray<T>::SetWithoutChecks(int32_t i, T value) { DCHECK_EQ(kTransactionActive, Runtime::Current()->IsActiveTransaction()); } if (kTransactionActive) { - Runtime::Current()->RecordWriteArray(this, i, GetWithoutChecks(i)); + Runtime::Current()->GetClassLinker()->RecordWriteArray(this, i, GetWithoutChecks(i)); } DCHECK(CheckIsValidIndex<kVerifyFlags>(i)) << i << " " << GetLength<kVerifyFlags>(); GetData()[i] = value; |