Do not call memcpy if copying nothing
c.f. * e7b18ca6d9b45b7e71694557b9fab8152c62c1ed * 34e1079aef81d108890fb167d7df69960e994ff5
This commit is contained in:
parent
32e8b42852
commit
b1b385465e
@ -1749,6 +1749,15 @@ rb_alloc_tmp_buffer2(volatile VALUE *store, long count, size_t elsize)
|
|||||||
#define MEMCPY(p1,p2,type,n) memcpy((p1), (p2), sizeof(type)*(size_t)(n))
|
#define MEMCPY(p1,p2,type,n) memcpy((p1), (p2), sizeof(type)*(size_t)(n))
|
||||||
#define MEMMOVE(p1,p2,type,n) memmove((p1), (p2), sizeof(type)*(size_t)(n))
|
#define MEMMOVE(p1,p2,type,n) memmove((p1), (p2), sizeof(type)*(size_t)(n))
|
||||||
#define MEMCMP(p1,p2,type,n) memcmp((p1), (p2), sizeof(type)*(size_t)(n))
|
#define MEMCMP(p1,p2,type,n) memcmp((p1), (p2), sizeof(type)*(size_t)(n))
|
||||||
|
#ifdef __GLIBC__
|
||||||
|
static inline void *
|
||||||
|
ruby_nonempty_memcpy(void *dest, const void *src, size_t n)
|
||||||
|
{
|
||||||
|
/* if nothing to be copied, src may be NULL */
|
||||||
|
return (n ? memcpy(dest, src, n) : dest);
|
||||||
|
}
|
||||||
|
#define memcpy(p1,p2,n) ruby_nonempty_memcpy(p1, p2, n)
|
||||||
|
#endif
|
||||||
|
|
||||||
void rb_obj_infect(VALUE victim, VALUE carrier);
|
void rb_obj_infect(VALUE victim, VALUE carrier);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user