From ab85571ae68d89e76141bc96df9bb36ac5783d11 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Sat, 11 Sep 2021 16:33:05 +0100 Subject: [PATCH] Minor improvements to mem.odin --- core/mem/mem.odin | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/core/mem/mem.odin b/core/mem/mem.odin index 6afa98806..3d5a6f30b 100644 --- a/core/mem/mem.odin +++ b/core/mem/mem.odin @@ -3,14 +3,15 @@ package mem import "core:runtime" import "core:intrinsics" -set :: proc "contextless" (data: rawptr, value: byte, len: int) -> rawptr #no_bounds_check { +set :: proc "contextless" (data: rawptr, value: byte, len: int) -> rawptr { return runtime.memset(data, i32(value), uint(len)) } zero :: proc "contextless" (data: rawptr, len: int) -> rawptr { - return set(data, 0, len) + intrinsics.mem_zero(data, len) + return data } zero_item :: proc "contextless" (item: $P/^$T) { - set(item, 0, size_of(T)) + intrinsics.mem_zero(item, size_of(T)) } zero_slice :: proc "contextless" (data: $T/[]$E) { zero(raw_data(data), size_of(E)*len(data)) @@ -18,10 +19,12 @@ zero_slice :: proc "contextless" (data: $T/[]$E) { copy :: proc "contextless" (dst, src: rawptr, len: int) -> rawptr { - return runtime.mem_copy(dst, src, len) + intrinsics.mem_copy(dst, src, len) + return dst } copy_non_overlapping :: proc "contextless" (dst, src: rawptr, len: int) -> rawptr { - return runtime.mem_copy_non_overlapping(dst, src, len) + intrinsics.mem_copy_non_overlapping(dst, src, len) + return dst } compare :: proc "contextless" (a, b: []byte) -> int { res := compare_byte_ptrs(raw_data(a), raw_data(b), min(len(a), len(b)))