Ruby
2.7.1p83(2020-03-31revisiona0c7c23c9cec0d0ffcba012279cd652d28ad5bf3)
missing
memmove.c
Go to the documentation of this file.
1
/* public domain rewrite of memcmp(3) */
2
3
#include "
ruby/missing.h
"
4
#include <stddef.h>
5
6
void
*
7
memmove
(
void
*d,
const
void
*s,
size_t
n
)
8
{
9
char
*dst = (
char
*)d;
10
const
char
*
src
= (
const
char
*)s;
11
12
if
(
src
< dst) {
13
src
+=
n
;
14
dst +=
n
;
15
for
(;
n
; --
n
)
16
*--dst = *--
src
;
17
}
18
else
if
(dst <
src
)
19
for
(;
n
; --
n
)
20
*dst++ = *
src
++;
21
return
d;
22
}
n
const char size_t n
Definition:
rb_mjit_min_header-2.7.1.h:5417
memmove
void * memmove(void *d, const void *s, size_t n)
Definition:
memmove.c:7
missing.h
src
__inline__ const void *__restrict src
Definition:
rb_mjit_min_header-2.7.1.h:2804
Generated by
1.8.17