summaryrefslogtreecommitdiff
path: root/runtime/mirror/array.h
diff options
context:
space:
mode:
author Vladimir Marko <vmarko@google.com> 2020-05-05 10:07:59 +0100
committer Vladimir Marko <vmarko@google.com> 2020-05-05 13:34:31 +0000
commitd34b73b4ac478462acc03c4cd42ae7568c832eb8 (patch)
tree27f1c4599178ba57451c29d0156c232768711b6d /runtime/mirror/array.h
parent4a48775376a4c0b180a7d32ad2cdf00bd0dca140 (diff)
Clean up internal stack trace construction.
Simplify the code by ignoring active transactions. Writing to fields of a newly allocated object does not need to be recorded as aborting the transaction removes all references to the new object and it's unnecessary to roll back writes to unreachable object's fields. Test: m test-art-host-gtest Test: testrunner.py --host --optimizing Test: aosp_taimen-userdebug boots. Change-Id: Ia91d3274398b0ca0f5b0040dcf323921d915b657
Diffstat (limited to 'runtime/mirror/array.h')
-rw-r--r--runtime/mirror/array.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/runtime/mirror/array.h b/runtime/mirror/array.h
index 19f9a927e3..4c172f22f0 100644
--- a/runtime/mirror/array.h
+++ b/runtime/mirror/array.h
@@ -241,10 +241,13 @@ class PointerArray : public Array {
static_cast<size_t>(ptr_size) * index);
}
- template<bool kTransactionActive = false, bool kUnchecked = false>
+ template<bool kTransactionActive = false, bool kCheckTransaction = true, bool kUnchecked = false>
void SetElementPtrSize(uint32_t idx, uint64_t element, PointerSize ptr_size)
REQUIRES_SHARED(Locks::mutator_lock_);
- template<bool kTransactionActive = false, bool kUnchecked = false, typename T>
+ template<bool kTransactionActive = false,
+ bool kCheckTransaction = true,
+ bool kUnchecked = false,
+ typename T>
void SetElementPtrSize(uint32_t idx, T* element, PointerSize ptr_size)
REQUIRES_SHARED(Locks::mutator_lock_);