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/iteration_range.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/iteration_range.h')
-rw-r--r-- | libartbase/base/iteration_range.h | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/libartbase/base/iteration_range.h b/libartbase/base/iteration_range.h index eaed8b06a8..c916250751 100644 --- a/libartbase/base/iteration_range.h +++ b/libartbase/base/iteration_range.h @@ -18,6 +18,7 @@ #define ART_LIBARTBASE_BASE_ITERATION_RANGE_H_ #include <iterator> +#include <type_traits> namespace art { @@ -49,9 +50,11 @@ inline IterationRange<Iter> MakeIterationRange(const Iter& begin_it, const Iter& return IterationRange<Iter>(begin_it, end_it); } -template<typename List> -inline IterationRange<typename List::iterator> MakeIterationRange(List& list) { - return IterationRange<typename List::iterator>(list.begin(), list.end()); +template <typename List> +inline auto MakeIterationRange(List& list) -> IterationRange<decltype(list.begin())> { + static_assert(std::is_same_v<decltype(list.begin()), decltype(list.end())>, + "Different iterator types"); + return MakeIterationRange(list.begin(), list.end()); } template <typename Iter> |