From 106f1311d2de4505ac52cee916ef3aa153ef19d4 Mon Sep 17 00:00:00 2001 From: Folkert Date: Tue, 31 Aug 2021 22:32:56 +0200 Subject: [PATCH] only conditionally flip a bit --- compiler/builtins/bitcode/src/dict.zig | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/compiler/builtins/bitcode/src/dict.zig b/compiler/builtins/bitcode/src/dict.zig index d2dab07c7b..ee483c7644 100644 --- a/compiler/builtins/bitcode/src/dict.zig +++ b/compiler/builtins/bitcode/src/dict.zig @@ -66,11 +66,14 @@ fn capacityOfLevel(input: usize) usize { const Alignment = extern struct { bits: u8, - const VALUE_BEFORE_KEY_FLAG = 0b1000_0000; + const VALUE_BEFORE_KEY_FLAG: u8 = 0b1000_0000; fn toU32(self: Alignment) u32 { - // xor to wipe the leftmost bit - return self.bits ^ Alignment.VALUE_BEFORE_KEY_FLAG; + if (self.bits & Alignment.VALUE_BEFORE_KEY_FLAG == 1) { + return self.bits ^ Alignment.VALUE_BEFORE_KEY_FLAG; + } else { + return self.bits; + } } fn keyFirst(self: Alignment) bool {