File tree Expand file tree Collapse file tree 1 file changed +9
-4
lines changed Expand file tree Collapse file tree 1 file changed +9
-4
lines changed Original file line number Diff line number Diff line change @@ -215,11 +215,16 @@ impl MemoTableWithTypes<'_> {
215
215
) -> Option < NonNull < M > > {
216
216
let memo_ingredient_index = memo_ingredient_index. as_usize ( ) ;
217
217
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
+ }
222
226
}
227
+
223
228
let old_entry = mem:: replace (
224
229
memos[ memo_ingredient_index] . atomic_memo . get_mut ( ) ,
225
230
MemoEntryType :: to_dummy ( memo) . as_ptr ( ) ,
You can’t perform that action at this time.
0 commit comments