diff options
| author | Eric Holk <eric.holk@gmail.com> | 2012-06-13 16:14:01 -0700 |
|---|---|---|
| committer | Eric Holk <eric.holk@gmail.com> | 2012-06-21 16:11:11 -0700 |
| commit | 0e5cfd9f339c78384ef3fbcb4d230fa0bb363d54 (patch) | |
| tree | f71eefbe17ea2b94ab475a0bc63f690a1ea339e4 /src/libcore/ptr.rs | |
| parent | f8fa0a243788e6b1028d254958cd19c6f10034fa (diff) | |
Move vector addition out of trans and into libcore.
Diffstat (limited to 'src/libcore/ptr.rs')
| -rw-r--r-- | src/libcore/ptr.rs | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/libcore/ptr.rs b/src/libcore/ptr.rs index 2ce5550d951..2a89abc040f 100644 --- a/src/libcore/ptr.rs +++ b/src/libcore/ptr.rs @@ -10,6 +10,7 @@ export is_null; export is_not_null; export memcpy; export memmove; +export memset; export buf_len; export position; export extensions; @@ -23,6 +24,8 @@ native mod libc_ { fn memcpy(dest: *c_void, src: *c_void, n: libc::size_t) -> *c_void; #[rust_stack] fn memmove(dest: *c_void, src: *c_void, n: libc::size_t) -> *c_void; + #[rust_stack] + fn memset(dest: *c_void, c: libc::c_int, len: libc::size_t) -> *c_void; } #[abi = "rust-intrinsic"] @@ -108,6 +111,12 @@ unsafe fn memmove<T>(dst: *T, src: *T, count: uint) { libc_::memmove(dst as *c_void, src as *c_void, n as size_t); } +#[inline(always)] +unsafe fn memset<T>(dst: *mut T, c: int, count: uint) { + let n = count * sys::size_of::<T>(); + libc_::memset(dst as *c_void, c as libc::c_int, n as size_t); +} + #[doc = "Extension methods for pointers"] impl extensions<T> for *T { #[doc = "Returns true if the pointer is equal to the null pointer."] |
