diff options
author | 2020-11-12 17:05:28 +0000 | |
---|---|---|
committer | 2020-11-13 10:07:21 +0000 | |
commit | b6837f0350ff66c13582b0e94178dd5ca283ff0a (patch) | |
tree | f79fff81352545efe967850e3d17e32255dcfecd /libartbase/base/array_slice.h | |
parent | 32c2eb81320f24b5bab24754204b8be95faa08b0 (diff) |
Revert^2 "Partial LSE analysis & store removal"
A ScopedArenaAllocator in a single test was accidentally loaded using
operator new which is not supported. This caused a memory leak.
This reverts commit fe270426c8a2a69a8f669339e83b86fbf40e25a1.
This unreverts commit bb6cda60e4418c0ab557ea4090e046bed8206763.
Bug: 67037140
Reason for revert: Fixed memory leak in
LoadStoreAnalysisTest.PartialEscape test case
Test: SANITIZE_HOST=address ASAN_OPTIONS=detect_leaks=0 m test-art-host-gtest-dependencies
Run art_compiler_tests
Change-Id: I34fa2079df946ae54b8c91fa771a44d56438a719
Diffstat (limited to 'libartbase/base/array_slice.h')
-rw-r--r-- | libartbase/base/array_slice.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/libartbase/base/array_slice.h b/libartbase/base/array_slice.h index 4679146ca1..a58ff4439d 100644 --- a/libartbase/base/array_slice.h +++ b/libartbase/base/array_slice.h @@ -17,6 +17,7 @@ #ifndef ART_LIBARTBASE_BASE_ARRAY_SLICE_H_ #define ART_LIBARTBASE_BASE_ARRAY_SLICE_H_ +#include <ostream> #include "bit_utils.h" #include "casts.h" #include "iteration_range.h" @@ -63,6 +64,10 @@ class ArraySlice { lpa != nullptr && lpa->size() != 0 ? &lpa->At(0, element_size, alignment) : nullptr, lpa != nullptr ? lpa->size() : 0, element_size) {} + ArraySlice(const ArraySlice<T>&) = default; + ArraySlice(ArraySlice<T>&&) = default; + ArraySlice<T>& operator=(const ArraySlice<T>&) = default; + ArraySlice<T>& operator=(ArraySlice<T>&&) = default; // Iterators. iterator begin() { return iterator(&AtUnchecked(0), element_size_); } @@ -166,6 +171,19 @@ class ArraySlice { size_t element_size_; }; +template<typename T> +std::ostream& operator<<(std::ostream& os, const ArraySlice<T>& ts) { + bool first = true; + os << "["; + for (const T& t : ts) { + if (!first) { os << ", "; } + first = false; + os << t; + } + os << "]"; + return os; +} + } // namespace art #endif // ART_LIBARTBASE_BASE_ARRAY_SLICE_H_ |