aboutsummaryrefslogtreecommitdiff
path: root/lib/std/debug/Pdb.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2025-08-27 18:57:21 -0700
committerAndrew Kelley <andrew@ziglang.org>2025-08-28 18:30:57 -0700
commit8023f3dcebff06cbf3563bdd09b07462ed43509f (patch)
treedb8a18f4680311f879f93ee25fbf32adb438691c /lib/std/debug/Pdb.zig
parente4181972470c29f83480fdd6d5a465e1f8d14d7b (diff)
downloadzig-8023f3dcebff06cbf3563bdd09b07462ed43509f.tar.gz
zig-8023f3dcebff06cbf3563bdd09b07462ed43509f.zip
fix not discarding delimiter
perhaps these APIs have the defaults backwards, eh?
Diffstat (limited to 'lib/std/debug/Pdb.zig')
-rw-r--r--lib/std/debug/Pdb.zig7
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/std/debug/Pdb.zig b/lib/std/debug/Pdb.zig
index 4c5b61e343..808be42ccb 100644
--- a/lib/std/debug/Pdb.zig
+++ b/lib/std/debug/Pdb.zig
@@ -2,6 +2,7 @@ const std = @import("../std.zig");
const File = std.fs.File;
const Allocator = std.mem.Allocator;
const pdb = std.pdb;
+const assert = std.debug.assert;
const Pdb = @This();
@@ -94,11 +95,15 @@ pub fn parseDbiStream(self: *Pdb) !void {
var module_name: std.Io.Writer.Allocating = .init(gpa);
defer module_name.deinit();
this_record_len += try reader.streamDelimiterLimit(&module_name.writer, 0, .limited(1024));
+ assert(reader.buffered()[0] == 0); // TODO change streamDelimiterLimit API
+ reader.toss(1);
this_record_len += 1;
var obj_file_name: std.Io.Writer.Allocating = .init(gpa);
defer obj_file_name.deinit();
this_record_len += try reader.streamDelimiterLimit(&obj_file_name.writer, 0, .limited(1024));
+ assert(reader.buffered()[0] == 0); // TODO change streamDelimiterLimit API
+ reader.toss(1);
this_record_len += 1;
if (this_record_len % 4 != 0) {
@@ -303,6 +308,8 @@ pub fn getLineNumberInfo(self: *Pdb, module: *Module, address: u64) !std.debug.S
var source_file_name: std.Io.Writer.Allocating = .init(gpa);
defer source_file_name.deinit();
_ = try adapted_reader.new_interface.streamDelimiterLimit(&source_file_name.writer, 0, .limited(1024));
+ assert(adapted_reader.new_interface.buffered()[0] == 0); // TODO change streamDelimiterLimit API
+ adapted_reader.new_interface.toss(1);
break :s try source_file_name.toOwnedSlice();
};
errdefer gpa.free(source_file_name);