summaryrefslogtreecommitdiff
path: root/libartbase/base/iteration_range.h
diff options
context:
space:
mode:
author Alex Light <allight@google.com> 2020-11-12 17:05:28 +0000
committer Treehugger Robot <treehugger-gerrit@google.com> 2020-11-13 10:07:21 +0000
commitb6837f0350ff66c13582b0e94178dd5ca283ff0a (patch)
treef79fff81352545efe967850e3d17e32255dcfecd /libartbase/base/iteration_range.h
parent32c2eb81320f24b5bab24754204b8be95faa08b0 (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.h9
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>