std.io: call the idiomatic std.mem.readInt functions

I originally called the Slice variants to work around
comptime code not supporting `@ptrCast`, but I fixed that
in 757d0665 so now the workaround is no longer needed.
This commit is contained in:
Andrew Kelley 2018-12-19 17:48:21 -05:00
parent a7670e80a4
commit 8768816d69
No known key found for this signature in database
GPG Key ID: 7C5F548F728501A9

View File

@ -155,32 +155,32 @@ pub fn InStream(comptime ReadError: type) type {
pub fn readIntNative(self: *Self, comptime T: type) !T { pub fn readIntNative(self: *Self, comptime T: type) !T {
var bytes: [@sizeOf(T)]u8 = undefined; var bytes: [@sizeOf(T)]u8 = undefined;
try self.readNoEof(bytes[0..]); try self.readNoEof(bytes[0..]);
return mem.readIntSliceNative(T, bytes); return mem.readIntNative(T, &bytes);
} }
/// Reads a foreign-endian integer /// Reads a foreign-endian integer
pub fn readIntForeign(self: *Self, comptime T: type) !T { pub fn readIntForeign(self: *Self, comptime T: type) !T {
var bytes: [@sizeOf(T)]u8 = undefined; var bytes: [@sizeOf(T)]u8 = undefined;
try self.readNoEof(bytes[0..]); try self.readNoEof(bytes[0..]);
return mem.readIntSliceForeign(T, bytes); return mem.readIntForeign(T, &bytes);
} }
pub fn readIntLittle(self: *Self, comptime T: type) !T { pub fn readIntLittle(self: *Self, comptime T: type) !T {
var bytes: [@sizeOf(T)]u8 = undefined; var bytes: [@sizeOf(T)]u8 = undefined;
try self.readNoEof(bytes[0..]); try self.readNoEof(bytes[0..]);
return mem.readIntSliceLittle(T, bytes); return mem.readIntLittle(T, &bytes);
} }
pub fn readIntBig(self: *Self, comptime T: type) !T { pub fn readIntBig(self: *Self, comptime T: type) !T {
var bytes: [@sizeOf(T)]u8 = undefined; var bytes: [@sizeOf(T)]u8 = undefined;
try self.readNoEof(bytes[0..]); try self.readNoEof(bytes[0..]);
return mem.readIntSliceBig(T, bytes); return mem.readIntBig(T, &bytes);
} }
pub fn readInt(self: *Self, comptime T: type, endian: builtin.Endian) !T { pub fn readInt(self: *Self, comptime T: type, endian: builtin.Endian) !T {
var bytes: [@sizeOf(T)]u8 = undefined; var bytes: [@sizeOf(T)]u8 = undefined;
try self.readNoEof(bytes[0..]); try self.readNoEof(bytes[0..]);
return mem.readIntSlice(T, bytes, endian); return mem.readInt(T, &bytes, endian);
} }
pub fn readVarInt(self: *Self, comptime ReturnType: type, endian: builtin.Endian, size: usize) !ReturnType { pub fn readVarInt(self: *Self, comptime ReturnType: type, endian: builtin.Endian, size: usize) !ReturnType {