Home | History | Annotate | Line # | Download | only in rt
      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 rt/_arraycat.d)
      9  */
     10 
     11 module rt.arraycat;
     12 
     13 private
     14 {
     15     import core.stdc.string;
     16     import core.internal.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