From a34e8708777054e95feea7b2ae2af93c442bdb87 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Thu, 17 Dec 2020 09:04:01 -0600 Subject: [PATCH] updated day 14 --- day14.onyx | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/day14.onyx b/day14.onyx index 2dff089..1dd7bfd 100644 --- a/day14.onyx +++ b/day14.onyx @@ -24,7 +24,7 @@ bitmask_p1 :: proc (mask: Bitmask, val: u64) -> u64 { // Part 2 BitmaskIter :: struct { - floating_indicies : [] u8; + floating_indicies : [..] u8; val : u64; done : bool; } @@ -33,12 +33,9 @@ bitmask_iter_make :: proc (mask: Bitmask, val: u64) -> BitmaskIter { bmi : BitmaskIter; bmi.done = false; - floating_count := 0; - for m: mask do if m == 2 do floating_count += 1; - allocator.alloc_slice(^bmi.floating_indicies, floating_count); + array.init(^bmi.floating_indicies, 8); v := val; - j := 0; for i: 0 .. MASK_SIZE { if mask[i] == 1 { v |= 1 << cast(u64) i; @@ -47,8 +44,7 @@ bitmask_iter_make :: proc (mask: Bitmask, val: u64) -> BitmaskIter { if mask[i] == 2 { v &= ~(1 << cast(u64) i); - bmi.floating_indicies[j] = cast(u8) i; - j += 1; + array.push(^bmi.floating_indicies, cast(u8) i); } } @@ -57,7 +53,7 @@ bitmask_iter_make :: proc (mask: Bitmask, val: u64) -> BitmaskIter { } bitmask_iter_free :: proc (use bmi: ^BitmaskIter) { - cfree(floating_indicies.data); + array.free(^floating_indicies); } bitmask_iter_done :: proc (use bmi: ^BitmaskIter) -> bool do return done; @@ -137,4 +133,4 @@ main :: proc (args: [] cstr) { for e: mem.entries do s += e.value; printf("Sum: %l\n", s); -} \ No newline at end of file +} -- 2.25.1