From f1b809ce611e943f926fff97cefe0930226ffcc2 Mon Sep 17 00:00:00 2001 From: Alex Light Date: Tue, 26 Nov 2019 18:52:06 +0000 Subject: Revert^2 "Allow structural redefinition on non-final classes." We were incorrectly racing with the rest of the runtime in a couple of places. First we would return an ObjPtr of a newly defined class after holding it over a suspend point. This could lead to DefineClass returning an obsolete class in some cases. We also failed to ensure the class-status was synchronized between the old and new classes during structural redefinition. This could lead to a class appearing to go backwards in status. This reverts commit 88b1c83080afcb2bfb6f781ded1c90fe8f9eab4d. Reason for revert: Fixed issues causing test failures. Test: ./test.py --host Bug: 134162467 Bug: 144168550 Change-Id: I4d0f7718490532f0ef14a9561b8e7000ef292b12 --- libartbase/base/iteration_range.h | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'libartbase/base/iteration_range.h') diff --git a/libartbase/base/iteration_range.h b/libartbase/base/iteration_range.h index cd87d85f68..eaed8b06a8 100644 --- a/libartbase/base/iteration_range.h +++ b/libartbase/base/iteration_range.h @@ -49,6 +49,11 @@ inline IterationRange MakeIterationRange(const Iter& begin_it, const Iter& return IterationRange(begin_it, end_it); } +template +inline IterationRange MakeIterationRange(List& list) { + return IterationRange(list.begin(), list.end()); +} + template inline IterationRange MakeEmptyIterationRange(const Iter& it) { return IterationRange(it, it); -- cgit v1.2.3-59-g8ed1b