zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit 3090f83800f936118dfd4145a5e5754b8e899f23 (tree)
parent f4606842d26d2de72a1fcfad26a22b32c9cf7a53
Author: Jimmi HC <jimmiholstchristensen@gmail.com>
Date:   Thu, 15 Nov 2018 21:59:17 +0100

Fixed failure using readStruct and gave async readStruct the same sig

Diffstat:
Mstd/event/io.zig | 6++++--
Mstd/pdb.zig | 3+--
2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/std/event/io.zig b/std/event/io.zig @@ -53,10 +53,12 @@ pub fn InStream(comptime ReadError: type) type { return mem.readInt(bytes, T, endian); } - pub async fn readStruct(self: *Self, comptime T: type, ptr: *T) !void { + pub async fn readStruct(self: *Self, comptime T: type) !T { // Only extern and packed structs have defined in-memory layout. comptime assert(@typeInfo(T).Struct.layout != builtin.TypeInfo.ContainerLayout.Auto); - return await (async self.readNoEof(@sliceToBytes((*[1]T)(ptr)[0..])) catch unreachable); + var res: [1]T = undefined; + try await (async self.readNoEof(@sliceToBytes(res[0..])) catch unreachable); + return res[0]; } }; } diff --git a/std/pdb.zig b/std/pdb.zig @@ -485,8 +485,7 @@ const Msf = struct { var file_stream = file.inStream(); const in = &file_stream.stream; - var superblock: SuperBlock = undefined; - try in.readStruct(SuperBlock, &superblock); + const superblock = try in.readStruct(SuperBlock); if (!mem.eql(u8, superblock.FileMagic, SuperBlock.file_magic)) return error.InvalidDebugInfo;