Skip to content

Commit 7ba49ae

Browse files
committed
fix memo table growth condition
1 parent b2b82bc commit 7ba49ae

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

src/table/memo.rs

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -215,11 +215,16 @@ impl MemoTableWithTypes<'_> {
215215
) -> Option<NonNull<M>> {
216216
let memo_ingredient_index = memo_ingredient_index.as_usize();
217217
let mut memos = self.memos.memos.write();
218-
let additional_len = memo_ingredient_index - memos.len() + 1;
219-
memos.reserve(additional_len);
220-
while memos.len() < memo_ingredient_index + 1 {
221-
memos.push(MemoEntry::default());
218+
219+
// Grow the table if needed.
220+
if memo_ingredient_index <= memos.len() {
221+
let additional_len = memo_ingredient_index - memos.len() + 1;
222+
memos.reserve(additional_len);
223+
while memos.len() < memo_ingredient_index + 1 {
224+
memos.push(MemoEntry::default());
225+
}
222226
}
227+
223228
let old_entry = mem::replace(
224229
memos[memo_ingredient_index].atomic_memo.get_mut(),
225230
MemoEntryType::to_dummy(memo).as_ptr(),

0 commit comments

Comments
 (0)