diff options
-rw-r--r-- | src/bun.js/api/bun.zig | 4 | ||||
-rw-r--r-- | src/bun.js/bindings/bindings.zig | 8 | ||||
-rw-r--r-- | src/bun.js/webcore/response.zig | 2 |
3 files changed, 9 insertions, 5 deletions
diff --git a/src/bun.js/api/bun.zig b/src/bun.js/api/bun.zig index 324a6f9db..6fb3f0b4a 100644 --- a/src/bun.js/api/bun.zig +++ b/src/bun.js/api/bun.zig @@ -173,10 +173,10 @@ pub fn which( return JSC.JSValue.jsNull().asObjectRef(); } - path_str = ZigString.Slice.fromUTF8( + path_str = ZigString.Slice.fromUTF8NeverFree( globalThis.bunVM().bundler.env.map.get("PATH") orelse "", ); - cwd_str = ZigString.Slice.fromUTF8( + cwd_str = ZigString.Slice.fromUTF8NeverFree( globalThis.bunVM().bundler.fs.top_level_dir, ); diff --git a/src/bun.js/bindings/bindings.zig b/src/bun.js/bindings/bindings.zig index 7aa148c4d..f041d32f7 100644 --- a/src/bun.js/bindings/bindings.zig +++ b/src/bun.js/bindings/bindings.zig @@ -203,7 +203,7 @@ pub const ZigString = extern struct { ptr: [*]const u8, len: u32, - pub fn fromUTF8(input: []const u8) Slice { + pub fn fromUTF8NeverFree(input: []const u8) Slice { return .{ .ptr = input.ptr, .len = @truncate(u32, input.len), @@ -479,7 +479,11 @@ pub const ZigString = extern struct { if (!this.isUTF8() and !strings.isAllASCII(untagged(this.ptr)[0..this.len])) { var buffer = this.toOwnedSlice(allocator) catch unreachable; - return Slice.fromUTF8(buffer); + return Slice{ + .allocator = allocator, + .ptr = buffer.ptr, + .len = @truncate(u32, buffer.len), + }; } return Slice{ diff --git a/src/bun.js/webcore/response.zig b/src/bun.js/webcore/response.zig index 43b40b3b6..32e1e3f9b 100644 --- a/src/bun.js/webcore/response.zig +++ b/src/bun.js/webcore/response.zig @@ -3103,7 +3103,7 @@ pub const Blob = struct { input_path = .{ .fd = store.data.file.pathlike.fd }; } else { input_path = .{ - .path = ZigString.Slice.fromUTF8(store.data.file.pathlike.path.slice()), + .path = ZigString.Slice.fromUTF8NeverFree(store.data.file.pathlike.path.slice()), }; } |