blob: 6089b8aa0f0751d8620b2c9d2fcf8070e8ad8a51 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
#ifndef MRB_VALUE_ARRAY_H__
#define MRB_VALUE_ARRAY_H__
#include <mruby.h>
static inline void
value_move(mrb_value *s1, const mrb_value *s2, size_t n)
{
if (n == 0) return;
if (s1 > s2 && s1 < s2 + n)
{
s1 += n;
s2 += n;
while (n-- > 0) {
*--s1 = *--s2;
}
}
else if (s1 != s2) {
while (n-- > 0) {
*s1++ = *s2++;
}
}
else {
/* nothing to do. */
}
}
#endif /* MRB_VALUE_ARRAY_H__ */
|