diff options
Diffstat (limited to 'src/string_builder.zig')
-rw-r--r-- | src/string_builder.zig | 48 |
1 files changed, 21 insertions, 27 deletions
diff --git a/src/string_builder.zig b/src/string_builder.zig index 23e83917b..e3921568b 100644 --- a/src/string_builder.zig +++ b/src/string_builder.zig @@ -1,11 +1,11 @@ -const string = @import("string_types.zig").string; -const Allocator = @import("std").mem.Allocator; -const assert = @import("std").debug.assert; -const copy = @import("std").mem.copy; -const Env = @import("./env.zig"); +const std = @import("std"); +const Allocator = std.mem.Allocator; const bun = @import("bun"); +const Environment = bun.Environment; +const string = @import("string_types.zig").string; const StringBuilder = @This(); -const DebugHashTable = if (Env.allow_assert) std.AutoHashMapUnmanaged(u64, void) else void; + +const DebugHashTable = if (Environment.allow_assert) std.AutoHashMapUnmanaged(u64, void) else void; len: usize = 0, cap: usize = 0, @@ -15,7 +15,7 @@ debug_only_checker: DebugHashTable = DebugHashTable{}, pub fn count(this: *StringBuilder, slice: string) void { this.cap += slice.len; - if (comptime Env.allow_assert) { + if (comptime Environment.allow_assert) { _ = this.debug_only_checker.getOrPut(bun.default_allocator, bun.hash(slice)) catch unreachable; } } @@ -29,47 +29,39 @@ pub fn allocate(this: *StringBuilder, allocator: Allocator) !void { pub fn deinit(this: *StringBuilder, allocator: Allocator) void { if (this.ptr == null or this.cap == 0) return; allocator.free(this.ptr.?[0..this.cap]); - if (comptime Env.allow_assert) { + if (comptime Environment.allow_assert) { this.debug_only_checker.deinit(bun.default_allocator); this.debug_only_checker = .{}; } } pub fn append(this: *StringBuilder, slice: string) string { - if (comptime Env.allow_assert) { - assert(this.len <= this.cap); // didn't count everything - assert(this.ptr != null); // must call allocate first - } - - if (comptime Env.allow_assert) { - assert(this.debug_only_checker.contains(bun.hash(slice))); + if (comptime Environment.allow_assert) { + std.debug.assert(this.len <= this.cap); // didn't count everything + std.debug.assert(this.ptr != null); // must call allocate first + std.debug.assert(this.debug_only_checker.contains(bun.hash(slice))); } bun.copy(u8, this.ptr.?[this.len..this.cap], slice); const result = this.ptr.?[this.len..this.cap][0..slice.len]; this.len += slice.len; - if (Env.allow_assert) { - assert(this.len <= this.cap); - } + if (comptime Environment.allow_assert) std.debug.assert(this.len <= this.cap); return result; } -const std = @import("std"); pub fn fmt(this: *StringBuilder, comptime str: string, args: anytype) string { - if (Env.allow_assert) { - assert(this.len <= this.cap); // didn't count everything - assert(this.ptr != null); // must call allocate first + if (comptime Environment.allow_assert) { + std.debug.assert(this.len <= this.cap); // didn't count everything + std.debug.assert(this.ptr != null); // must call allocate first } var buf = this.ptr.?[this.len..this.cap]; const out = std.fmt.bufPrint(buf, str, args) catch unreachable; this.len += out.len; - if (Env.allow_assert) { - assert(this.len <= this.cap); - } + if (comptime Environment.allow_assert) std.debug.assert(this.len <= this.cap); return out; } @@ -80,7 +72,9 @@ pub fn fmtCount(this: *StringBuilder, comptime str: string, args: anytype) void pub fn allocatedSlice(this: *StringBuilder) []u8 { var ptr = this.ptr orelse return &[_]u8{}; - std.debug.assert(this.cap > 0); - std.debug.assert(this.len > 0); + if (comptime Environment.allow_assert) { + std.debug.assert(this.cap > 0); + std.debug.assert(this.len > 0); + } return ptr[0..this.cap]; } |