mirror of
https://github.com/ziglang/zig.git
synced 2026-01-20 14:25:16 +00:00
fix not discarding delimiter
perhaps these APIs have the defaults backwards, eh?
This commit is contained in:
parent
e418197247
commit
8023f3dceb
@ -877,6 +877,8 @@ pub fn peekDelimiterExclusive(r: *Reader, delimiter: u8) DelimiterError![]u8 {
|
||||
/// Appends to `w` contents by reading from the stream until `delimiter` is
|
||||
/// found. Does not write the delimiter itself.
|
||||
///
|
||||
/// Does not discard the delimiter from the `Reader`.
|
||||
///
|
||||
/// Returns number of bytes streamed, which may be zero, or error.EndOfStream
|
||||
/// if the delimiter was not found.
|
||||
///
|
||||
@ -930,6 +932,8 @@ pub const StreamDelimiterLimitError = error{
|
||||
/// Appends to `w` contents by reading from the stream until `delimiter` is found.
|
||||
/// Does not write the delimiter itself.
|
||||
///
|
||||
/// Does not discard the delimiter from the `Reader`.
|
||||
///
|
||||
/// Returns number of bytes streamed, which may be zero. End of stream can be
|
||||
/// detected by checking if the next byte in the stream is the delimiter.
|
||||
///
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -5893,15 +5893,16 @@ fn buildGlibcCrtFile(comp: *Compilation, crt_file: glibc.CrtFile, prog_node: std
|
||||
|
||||
fn buildGlibcSharedObjects(comp: *Compilation, prog_node: std.Progress.Node) void {
|
||||
defer comp.link_task_queue.finishPrelinkItem(comp);
|
||||
if (glibc.buildSharedObjects(comp, prog_node)) |_| {
|
||||
// The job should no longer be queued up since it succeeded.
|
||||
comp.queued_jobs.glibc_shared_objects = false;
|
||||
} else |err| switch (err) {
|
||||
error.AlreadyReported => return,
|
||||
else => comp.lockAndSetMiscFailure(.glibc_shared_objects, "unable to build glibc shared objects: {s}", .{
|
||||
@errorName(err),
|
||||
}),
|
||||
}
|
||||
glibc.buildSharedObjects(comp, prog_node) catch unreachable;
|
||||
//if (glibc.buildSharedObjects(comp, prog_node)) |_| {
|
||||
// // The job should no longer be queued up since it succeeded.
|
||||
// comp.queued_jobs.glibc_shared_objects = false;
|
||||
//} else |err| switch (err) {
|
||||
// error.AlreadyReported => return,
|
||||
// else => comp.lockAndSetMiscFailure(.glibc_shared_objects, "unable to build glibc shared objects: {s}", .{
|
||||
// @errorName(err),
|
||||
// }),
|
||||
//}
|
||||
}
|
||||
|
||||
fn buildFreeBSDCrtFile(comp: *Compilation, crt_file: freebsd.CrtFile, prog_node: std.Progress.Node) void {
|
||||
|
||||
@ -548,6 +548,8 @@ pub fn buildSharedObjects(comp: *Compilation, prog_node: std.Progress.Node) anye
|
||||
const sym_name = opt_symbol_name orelse n: {
|
||||
sym_name_buf.clearRetainingCapacity();
|
||||
_ = try inc_reader.streamDelimiter(&sym_name_buf.writer, 0);
|
||||
assert(inc_reader.buffered()[0] == 0); // TODO change streamDelimiter API
|
||||
inc_reader.toss(1);
|
||||
|
||||
opt_symbol_name = sym_name_buf.written();
|
||||
versions.unsetAll();
|
||||
@ -694,6 +696,8 @@ pub fn buildSharedObjects(comp: *Compilation, prog_node: std.Progress.Node) anye
|
||||
const sym_name = opt_symbol_name orelse n: {
|
||||
sym_name_buf.clearRetainingCapacity();
|
||||
_ = try inc_reader.streamDelimiter(&sym_name_buf.writer, 0);
|
||||
assert(inc_reader.buffered()[0] == 0); // TODO change streamDelimiter API
|
||||
inc_reader.toss(1);
|
||||
|
||||
opt_symbol_name = sym_name_buf.written();
|
||||
versions.unsetAll();
|
||||
@ -830,6 +834,8 @@ pub fn buildSharedObjects(comp: *Compilation, prog_node: std.Progress.Node) anye
|
||||
const sym_name = opt_symbol_name orelse n: {
|
||||
sym_name_buf.clearRetainingCapacity();
|
||||
_ = try inc_reader.streamDelimiter(&sym_name_buf.writer, 0);
|
||||
assert(inc_reader.buffered()[0] == 0); // TODO change streamDelimiter API
|
||||
inc_reader.toss(1);
|
||||
|
||||
opt_symbol_name = sym_name_buf.written();
|
||||
versions.unsetAll();
|
||||
|
||||
@ -802,6 +802,8 @@ pub fn buildSharedObjects(comp: *Compilation, prog_node: std.Progress.Node) anye
|
||||
const sym_name = opt_symbol_name orelse n: {
|
||||
sym_name_buf.clearRetainingCapacity();
|
||||
_ = try inc_reader.streamDelimiter(&sym_name_buf.writer, 0);
|
||||
assert(inc_reader.buffered()[0] == 0); // TODO change streamDelimiter API
|
||||
inc_reader.toss(1);
|
||||
|
||||
opt_symbol_name = sym_name_buf.written();
|
||||
versions_buffer = undefined;
|
||||
@ -974,6 +976,8 @@ pub fn buildSharedObjects(comp: *Compilation, prog_node: std.Progress.Node) anye
|
||||
const sym_name = opt_symbol_name orelse n: {
|
||||
sym_name_buf.clearRetainingCapacity();
|
||||
_ = try inc_reader.streamDelimiter(&sym_name_buf.writer, 0);
|
||||
assert(inc_reader.buffered()[0] == 0); // TODO change streamDelimiter API
|
||||
inc_reader.toss(1);
|
||||
|
||||
opt_symbol_name = sym_name_buf.written();
|
||||
versions_buffer = undefined;
|
||||
|
||||
@ -477,6 +477,8 @@ pub fn buildSharedObjects(comp: *Compilation, prog_node: std.Progress.Node) anye
|
||||
const sym_name = opt_symbol_name orelse n: {
|
||||
sym_name_buf.clearRetainingCapacity();
|
||||
_ = try inc_reader.streamDelimiter(&sym_name_buf.writer, 0);
|
||||
assert(inc_reader.buffered()[0] == 0); // TODO change streamDelimiter API
|
||||
inc_reader.toss(1);
|
||||
|
||||
opt_symbol_name = sym_name_buf.written();
|
||||
chosen_ver_index = 255;
|
||||
@ -552,6 +554,8 @@ pub fn buildSharedObjects(comp: *Compilation, prog_node: std.Progress.Node) anye
|
||||
const sym_name = opt_symbol_name orelse n: {
|
||||
sym_name_buf.clearRetainingCapacity();
|
||||
_ = try inc_reader.streamDelimiter(&sym_name_buf.writer, 0);
|
||||
assert(inc_reader.buffered()[0] == 0); // TODO change streamDelimiter API
|
||||
inc_reader.toss(1);
|
||||
|
||||
opt_symbol_name = sym_name_buf.written();
|
||||
chosen_ver_index = 255;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user