Skip to content

Commit 6ad0ba8

Browse files
committed
Remove bound checks
1 parent 301c63c commit 6ad0ba8

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

src/day11.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ fn aos(start_num: u64, num_blinks: u64, cach: &mut HashMap<(u64, u64), u64>) ->
156156
let mut stack_i = 0;
157157

158158
loop {
159-
let mut top = unsafe { stack[stack_i].assume_init_read() };
159+
let mut top = unsafe { stack.get_unchecked(stack_i).assume_init_read() };
160160
let top_i = stack_i;
161161

162162
loop {
@@ -190,7 +190,8 @@ fn aos(start_num: u64, num_blinks: u64, cach: &mut HashMap<(u64, u64), u64>) ->
190190
if top.parrent_stone == usize::MAX {
191191
return r;
192192
}
193-
unsafe { stack[top.parrent_stone].assume_init_mut() }.stones += r;
193+
unsafe { stack.get_unchecked_mut(top.parrent_stone).assume_init_mut() }
194+
.stones += r;
194195
stack_i -= 1;
195196
} else {
196197
stack[top_i].write(top);
@@ -204,7 +205,7 @@ fn aos(start_num: u64, num_blinks: u64, cach: &mut HashMap<(u64, u64), u64>) ->
204205
}
205206

206207
stack_i += 1;
207-
stack[stack_i].write(Stack {
208+
unsafe { stack.get_unchecked_mut(stack_i) }.write(Stack {
208209
stones: 1,
209210
num: new_num,
210211
blinks_left: top.blinks_left - 1,

0 commit comments

Comments
 (0)