Skip to content

Commit 15a8f6f

Browse files
committed
remove last in loop in DictInner::pop_back
1 parent a927814 commit 15a8f6f

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

vm/src/dictdatatype.rs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -645,14 +645,15 @@ impl<T: Clone> Dict<T> {
645645

646646
pub fn pop_back(&self) -> Option<(PyObjectRef, T)> {
647647
let mut inner = &mut *self.write();
648-
let (entry_idx, entry) = inner.entries[..inner.next_new_entry_idx]
649-
.iter_mut()
650-
.enumerate()
651-
.rev()
652-
.find_map(|(i, entry)| entry.take().map(|e| (i, e)))?;
648+
let entry = loop {
649+
let entry = inner.entries.pop()?;
650+
if let Some(entry) = entry {
651+
break entry;
652+
}
653+
};
653654
inner.used -= 1;
654655
inner.indices[entry.index] = IndexEntry::DUMMY;
655-
inner.next_new_entry_idx = entry_idx;
656+
inner.next_new_entry_idx = inner.entries.len();
656657
Some((entry.key, entry.value))
657658
}
658659

0 commit comments

Comments
 (0)