| ... | ... | @@ -3,7 +3,6 @@ const string = []const u8; |
| 3 | 3 | const extras = @import("extras"); |
| 4 | 4 | const tracer = @import("tracer"); |
| 5 | 5 | |
| 6 | | const buf_size = 64; |
| 7 | 6 | const Error = std.mem.Allocator.Error; |
| 8 | 7 | const ObjectHashMap = std.AutoArrayHashMapUnmanaged(StringIndex, ValueIndex); |
| 9 | 8 | |
| ... | ... | @@ -14,8 +13,7 @@ pub fn parse(alloc: std.mem.Allocator, path: string, inreader: anytype) anyerror |
| 14 | 13 | _ = path; |
| 15 | 14 | |
| 16 | 15 | var counter = std.io.countingReader(inreader); |
| 17 | | var buf = std.io.bufferedReader(counter.reader()); |
| 18 | | const anyreader = extras.AnyReader.from(buf.reader()); |
| 16 | const anyreader = extras.AnyReader.from(counter.reader()); |
| 19 | 17 | var p = Parser.init(alloc, anyreader); |
| 20 | 18 | defer p.temp.deinit(alloc); |
| 21 | 19 | defer p.strings_map.deinit(alloc); |
| ... | ... | @@ -265,16 +263,15 @@ const Parser = struct { |
| 265 | 263 | |
| 266 | 264 | fn peekAmt(p: *Parser, amt: usize) !void { |
| 267 | 265 | if (p.avail() >= amt) return; |
| 266 | const buf_size = std.mem.page_size; |
| 268 | 267 | const diff_amt = amt - p.avail(); |
| 269 | 268 | std.debug.assert(diff_amt <= buf_size); |
| 270 | 269 | var buf: [buf_size]u8 = undefined; |
| 271 | | var target_buf = buf[0..diff_amt]; |
| 272 | | const len = try p.any.readAll(target_buf); |
| 270 | const len = try p.any.readAll(&buf); |
| 273 | 271 | if (len == 0) p.end = true; |
| 274 | 272 | if (len == 0) return error.EndOfStream; |
| 275 | | std.debug.assert(len <= diff_amt); |
| 276 | | try p.temp.appendSlice(p.arena, target_buf[0..len]); |
| 277 | | if (len != diff_amt) return error.EndOfStream; |
| 273 | try p.temp.appendSlice(p.arena, buf[0..len]); |
| 274 | if (amt > len) return error.EndOfStream; |
| 278 | 275 | } |
| 279 | 276 | |
| 280 | 277 | pub fn eatByte(p: *Parser, test_c: u8) !?u8 { |