diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/env_loader.zig | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/env_loader.zig b/src/env_loader.zig index 7d506a04e..8a3838101 100644 --- a/src/env_loader.zig +++ b/src/env_loader.zig @@ -884,18 +884,21 @@ pub const Loader = struct { defer file.close(); const stat = try file.stat(); - if (stat.size == 0) { + const end = stat.size; + + if (end == 0) { @field(this, base) = logger.Source.initPathString(base, ""); return; } - var buf = try this.allocator.allocSentinel(u8, stat.size, 0); + var buf = try this.allocator.alloc(u8, end + 1); errdefer this.allocator.free(buf); - var contents = try file.readAll(buf); + const amount_read = try file.readAll(buf[0..end]); + + // The null byte here is mostly for debugging purposes. + buf[end] = 0; - // always sentinel - buf.ptr[contents + 1] = 0; - const source = logger.Source.initPathString(base, buf.ptr[0..contents :0]); + const source = logger.Source.initPathString(base, buf[0..amount_read]); Parser.parse( &source, |