aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-02-25 19:06:11 -0800
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-02-25 19:06:11 -0800
commit451ccfd5ef4b6f1539a8a317ee96591228e4cd0a (patch)
treecf090f347dfdd5af5ee448eadb9b40cfff994070
parent2dd484c18089ea86831eeb5e0bd02f29da564f55 (diff)
downloadbun-451ccfd5ef4b6f1539a8a317ee96591228e4cd0a.tar.gz
bun-451ccfd5ef4b6f1539a8a317ee96591228e4cd0a.tar.zst
bun-451ccfd5ef4b6f1539a8a317ee96591228e4cd0a.zip
Update bun.zig
-rw-r--r--src/bun.zig8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/bun.zig b/src/bun.zig
index eec6a4ecc..8f1c5a542 100644
--- a/src/bun.zig
+++ b/src/bun.zig
@@ -394,10 +394,12 @@ pub fn copy(comptime Type: type, dest: []Type, src: []const Type) void {
std.debug.assert(input.len > 0);
std.debug.assert(output.len > 0);
- // if input.len overlaps with output.len, we need to copy backwards
- const overlaps = isSliceInBuffer(input, output) or isSliceInBuffer(output, input);
+ const does_input_or_output_overlap = (@ptrToInt(input.ptr) < @ptrToInt(output.ptr) and
+ @ptrToInt(input.ptr) + input.len > @ptrToInt(output.ptr)) or
+ (@ptrToInt(output.ptr) < @ptrToInt(input.ptr) and
+ @ptrToInt(output.ptr) + output.len > @ptrToInt(input.ptr));
- if (!overlaps) {
+ if (!does_input_or_output_overlap) {
@memcpy(output.ptr, input.ptr, input.len);
} else {
C.memmove(output.ptr, input.ptr, input.len);