zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit afc33f00ee65bfefa173200e4ec8c0f329172d3f (tree)
parent 57f545eed8e940520855c127245414db9ea29310
Author: Ryan Liptak <squeek502@hotmail.com>
Date:   Thu, 25 Apr 2019 13:41:19 -0700

heap: fixup style of realloc memory copies

Diffstat:
Mstd/heap.zig | 24++++--------------------
1 file changed, 4 insertions(+), 20 deletions(-)

diff --git a/std/heap.zig b/std/heap.zig @@ -139,11 +139,7 @@ pub const DirectAllocator = struct { return shrink(allocator, old_mem, old_align, new_size, new_align); } const result = try alloc(allocator, new_size, new_align); - if (result.len >= old_mem.len) { - mem.copy(u8, result, old_mem); - } else { - @memcpy(result.ptr, old_mem.ptr, new_size); - } + @memcpy(result.ptr, old_mem.ptr, std.math.min(old_mem.len, result.len)); _ = os.posix.munmap(@ptrToInt(old_mem.ptr), old_mem.len); return result; }, @@ -274,11 +270,7 @@ pub const ArenaAllocator = struct { return error.OutOfMemory; } else { const result = try alloc(allocator, new_size, new_align); - if (result.len >= old_mem.len) { - mem.copy(u8, result, old_mem); - } else { - @memcpy(result.ptr, old_mem.ptr, new_size); - } + @memcpy(result.ptr, old_mem.ptr, std.math.min(old_mem.len, result.len)); return result; } } @@ -336,11 +328,7 @@ pub const FixedBufferAllocator = struct { return error.OutOfMemory; } else { const result = try alloc(allocator, new_size, new_align); - if (result.len >= old_mem.len) { - mem.copy(u8, result, old_mem); - } else { - @memcpy(result.ptr, old_mem.ptr, new_size); - } + @memcpy(result.ptr, old_mem.ptr, std.math.min(old_mem.len, result.len)); return result; } } @@ -483,11 +471,7 @@ pub const ThreadSafeFixedBufferAllocator = blk: { return error.OutOfMemory; } else { const result = try alloc(allocator, new_size, new_align); - if (result.len >= old_mem.len) { - mem.copy(u8, result, old_mem); - } else { - @memcpy(result.ptr, old_mem.ptr, new_size); - } + @memcpy(result.ptr, old_mem.ptr, std.math.min(old_mem.len, result.len)); return result; } }