From 0286be127e4b9f74ddffcc241b947c7c5bb3dfce Mon Sep 17 00:00:00 2001 From: LemonBoy Date: Fri, 19 Apr 2019 19:59:14 +0200 Subject: Fix parseFormValueConstant Signed/unsigned confusion made the code fail an assertion sometimes. --- std/debug.zig | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'std/debug.zig') diff --git a/std/debug.zig b/std/debug.zig index 90b4ff31d5..b360601e92 100644 --- a/std/debug.zig +++ b/std/debug.zig @@ -1440,7 +1440,7 @@ fn parseFormValueBlock(allocator: *mem.Allocator, in_stream: var, size: usize) ! return parseFormValueBlockLen(allocator, in_stream, block_len); } -fn parseFormValueConstant(allocator: *mem.Allocator, in_stream: var, signed: bool, size: i32) !FormValue { +fn parseFormValueConstant(allocator: *mem.Allocator, in_stream: var, signed: bool, comptime size: i32) !FormValue { return FormValue{ .Const = Constant{ .signed = signed, @@ -1449,8 +1449,9 @@ fn parseFormValueConstant(allocator: *mem.Allocator, in_stream: var, signed: boo 2 => try in_stream.readIntLittle(u16), 4 => try in_stream.readIntLittle(u32), 8 => try in_stream.readIntLittle(u64), - -1 => if (signed) try readULeb128(in_stream) else @intCast(u64, try readILeb128(in_stream)), - else => unreachable, + -1 => if (signed) @intCast(u64, try readILeb128(in_stream)) + else try readULeb128(in_stream), + else => @compileError("Invalid size"), }, }, }; -- cgit v1.2.3