From 5fa0abdfef447eb0b702296514700133377523c7 Mon Sep 17 00:00:00 2001 From: yt2b Date: Sun, 18 Dec 2022 12:45:10 +0900 Subject: [PATCH] Use lock in both index and remove operation. --- vm/src/builtins/list.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vm/src/builtins/list.rs b/vm/src/builtins/list.rs index 950eb7c1f..58d7c46a4 100644 --- a/vm/src/builtins/list.rs +++ b/vm/src/builtins/list.rs @@ -300,8 +300,8 @@ impl PyList { if let Some(index) = index.into() { // defer delete out of borrow - let mut elements = self.borrow_vec_mut(); - Ok((index < elements.len()).then(move || elements.remove(index))) + let is_inside_range = index < self.borrow_vec().len(); + Ok(is_inside_range.then(|| self.borrow_vec_mut().remove(index))) } else { Err(vm.new_value_error(format!("'{}' is not in list", needle.str(vm)?))) }