diff options
author | 2022-11-27 07:24:43 -0800 | |
---|---|---|
committer | 2022-11-27 07:24:43 -0800 | |
commit | 46678c46ee413a2239946a6cdd746149fbcc5261 (patch) | |
tree | 05f00adca92c6782c8e3ab7fff15de6b161d484c | |
parent | e8d948b9d94a7300086868c392bb1a3faa84e9b0 (diff) | |
download | bun-46678c46ee413a2239946a6cdd746149fbcc5261.tar.gz bun-46678c46ee413a2239946a6cdd746149fbcc5261.tar.zst bun-46678c46ee413a2239946a6cdd746149fbcc5261.zip |
Now that utf16 is fast we can just count the length instead of re-allocating
-rw-r--r-- | src/baby_list.zig | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/src/baby_list.zig b/src/baby_list.zig index 20ad935f9..6b60b92c6 100644 --- a/src/baby_list.zig +++ b/src/baby_list.zig @@ -374,7 +374,7 @@ pub fn BabyList(comptime Type: type) type { const initial = this.len; { defer this.update(list_); - try list_.ensureTotalCapacityPrecise(list_.items.len + str.len + 4); + try list_.ensureTotalCapacityPrecise(list_.items.len + strings.elementLengthUTF16IntoUTF8([]const u16, str)); var remain = str; while (remain.len > 0) { @@ -384,10 +384,6 @@ pub fn BabyList(comptime Type: type) type { const result = strings.copyUTF16IntoUTF8(slice_, []const u16, remain); remain = remain[result.read..]; list_.items.len += @as(usize, result.written); - if (remain.len > 0) { - try list_.ensureTotalCapacityPrecise(list_.items.len + strings.elementLengthUTF16IntoUTF8([]const u16, remain)); - continue; - } if (result.read == 0 or result.written == 0) break; } } |