summaryrefslogtreecommitdiff
path: root/runtime/mirror/array-inl.h
diff options
context:
space:
mode:
author Vladimir Marko <vmarko@google.com> 2024-05-14 16:46:15 +0200
committer VladimĂ­r Marko <vmarko@google.com> 2024-05-17 05:52:24 +0000
commit382f0db56cb95d0f1062ce46c73bc21705c87cef (patch)
treeaf1ed12f59c3a8a90946560001a53a98ffdbce0a /runtime/mirror/array-inl.h
parente6374e9c089c98729068fc25fc981e78b27d6a70 (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.h3
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;