aboutsummaryrefslogtreecommitdiff
path: root/src/Package
diff options
context:
space:
mode:
Diffstat (limited to 'src/Package')
-rw-r--r--src/Package/Manifest.zig12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/Package/Manifest.zig b/src/Package/Manifest.zig
index 1d71b60fa3..f5a4a8c314 100644
--- a/src/Package/Manifest.zig
+++ b/src/Package/Manifest.zig
@@ -471,10 +471,14 @@ const Parse = struct {
offset: u32,
) InnerError!void {
const raw_string = bytes[offset..];
- var buf_managed = buf.toManaged(p.gpa);
- const result = std.zig.string_literal.parseWrite(buf_managed.writer(), raw_string);
- buf.* = buf_managed.moveToUnmanaged();
- switch (try result) {
+ const result = r: {
+ var aw: std.io.Writer.Allocating = .fromArrayList(p.gpa, buf);
+ defer buf.* = aw.toArrayList();
+ break :r std.zig.string_literal.parseWrite(&aw.writer, raw_string) catch |err| switch (err) {
+ error.WriteFailed => return error.OutOfMemory,
+ };
+ };
+ switch (result) {
.success => {},
.failure => |err| try p.appendStrLitError(err, token, bytes, offset),
}