mirror of
https://codeberg.org/ziglang/zig.git
synced 2025-12-06 05:44:20 +00:00
std.compress.flate.Decompress: return correct size for unbuffered decompression
Closes #24686 As a bonus, this commit also makes the `git.zig` "testing `main`" compile again.
This commit is contained in:
parent
163e9ce7d9
commit
96be6f6566
2 changed files with 10 additions and 7 deletions
|
|
@ -373,7 +373,7 @@ fn streamInner(d: *Decompress, w: *Writer, limit: std.Io.Limit) (Error || Reader
|
|||
d.state = .{ .stored_block = @intCast(remaining_len - n) };
|
||||
}
|
||||
w.advance(n);
|
||||
return n;
|
||||
return @intFromEnum(limit) - remaining + n;
|
||||
},
|
||||
.fixed_block => {
|
||||
while (remaining > 0) {
|
||||
|
|
@ -1265,6 +1265,7 @@ fn testDecompress(container: Container, compressed: []const u8, expected_plain:
|
|||
defer aw.deinit();
|
||||
|
||||
var decompress: Decompress = .init(&in, container, &.{});
|
||||
_ = try decompress.reader.streamRemaining(&aw.writer);
|
||||
const decompressed_len = try decompress.reader.streamRemaining(&aw.writer);
|
||||
try testing.expectEqual(expected_plain.len, decompressed_len);
|
||||
try testing.expectEqualSlices(u8, expected_plain, aw.getWritten());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1678,7 +1678,7 @@ test "SHA-256 packfile indexing and checkout" {
|
|||
/// Checks out a commit of a packfile. Intended for experimenting with and
|
||||
/// benchmarking possible optimizations to the indexing and checkout behavior.
|
||||
pub fn main() !void {
|
||||
const allocator = std.heap.c_allocator;
|
||||
const allocator = std.heap.smp_allocator;
|
||||
|
||||
const args = try std.process.argsAlloc(allocator);
|
||||
defer std.process.argsFree(allocator, args);
|
||||
|
|
@ -1703,12 +1703,14 @@ pub fn main() !void {
|
|||
std.debug.print("Starting index...\n", .{});
|
||||
var index_file = try git_dir.createFile("idx", .{ .read = true });
|
||||
defer index_file.close();
|
||||
var index_buffered_writer = std.io.bufferedWriter(index_file.deprecatedWriter());
|
||||
try indexPack(allocator, format, &pack_file_reader, index_buffered_writer.writer());
|
||||
try index_buffered_writer.flush();
|
||||
var index_file_buffer: [4096]u8 = undefined;
|
||||
var index_file_writer = index_file.writer(&index_file_buffer);
|
||||
try indexPack(allocator, format, &pack_file_reader, &index_file_writer);
|
||||
|
||||
std.debug.print("Starting checkout...\n", .{});
|
||||
var repository = try Repository.init(allocator, format, &pack_file_reader, index_file);
|
||||
var index_file_reader = index_file.reader(&index_file_buffer);
|
||||
var repository: Repository = undefined;
|
||||
try repository.init(allocator, format, &pack_file_reader, &index_file_reader);
|
||||
defer repository.deinit();
|
||||
var diagnostics: Diagnostics = .{ .allocator = allocator };
|
||||
defer diagnostics.deinit();
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue