diff options
| author | 2020-05-05 10:07:59 +0100 | |
|---|---|---|
| committer | 2020-05-05 13:34:31 +0000 | |
| commit | d34b73b4ac478462acc03c4cd42ae7568c832eb8 (patch) | |
| tree | 27f1c4599178ba57451c29d0156c232768711b6d /runtime/mirror/array.h | |
| parent | 4a48775376a4c0b180a7d32ad2cdf00bd0dca140 (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.h | 7 |
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_); |