From db15ea652d13811e236e1f12c88807ebfed05da9 Mon Sep 17 00:00:00 2001 From: Vladimir Marko Date: Thu, 2 May 2024 10:56:42 +0000 Subject: Refactor transaction checks in switch interpreter. Prepare for moving the transactional interpreter from `runtime/` to `dex2oat/` by moving transaction checking code to a new file `active_transaction_checker.h`, and breaking unstarted runtime dependency on transaction code by adding an indirection with a virtual call through `ClassLinker`. Consistently return the same value from contraint checks. Previously we were returning the negated result from the `CheckWrite{,Value}Constraint()` compared to the value we received from `Transaction::Write{,Value}Constraint()`. Test: m test-art-host-gtest Test: testrunner.py --host --interp-ac Change-Id: I88a168b6c770932d014e3a40486480590cef0401 --- runtime/interpreter/interpreter_common.cc | 16 ---------------- 1 file changed, 16 deletions(-) (limited to 'runtime/interpreter/interpreter_common.cc') diff --git a/runtime/interpreter/interpreter_common.cc b/runtime/interpreter/interpreter_common.cc index 737e80b8ca..ded500fd78 100644 --- a/runtime/interpreter/interpreter_common.cc +++ b/runtime/interpreter/interpreter_common.cc @@ -210,22 +210,6 @@ void UnexpectedOpcode(const Instruction* inst, const ShadowFrame& shadow_frame) UNREACHABLE(); } -void AbortTransactionF(Thread* self, const char* fmt, ...) { - va_list args; - va_start(args, fmt); - AbortTransactionV(self, fmt, args); - va_end(args); -} - -void AbortTransactionV(Thread* self, const char* fmt, va_list args) { - CHECK(Runtime::Current()->IsActiveTransaction()); - // Constructs abort message. - std::string abort_msg; - android::base::StringAppendV(&abort_msg, fmt, args); - // Throws an exception so we can abort the transaction and rollback every change. - Runtime::Current()->AbortTransactionAndThrowAbortError(self, abort_msg); -} - // START DECLARATIONS : // // These additional declarations are required because clang complains -- cgit v1.2.3-59-g8ed1b