1 /**
2  * Implementation of array copy support routines.
3  *
4  * Copyright: Copyright Digital Mars 2004 - 2016.
5  * License:   Distributed under the
6  *            $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0).
7  * Authors:   Walter Bright, Sean Kelly
8  * Source:    $(DRUNTIMESRC src/rt/_arraycat.d)
9  */
10 
11 module rt.arraycat;
12 
13 private
14 {
15     import core.stdc.string;
16     import rt.util.array;
17     debug(PRINTF) import core.stdc.stdio;
18 }
19 
20 extern (C) @trusted nothrow:
21 
22 void[] _d_arraycopy(size_t size, void[] from, void[] to)
23 {
24     debug(PRINTF) printf("f = %p,%d, t = %p,%d, size = %d\n",
25                  from.ptr, from.length, to.ptr, to.length, size);
26 
27     enforceRawArraysConformable("copy", size, from, to);
28     memcpy(to.ptr, from.ptr, to.length * size);
29     return to;
30 }
31