aboutsummaryrefslogtreecommitdiff
path: root/src/libexpr/gc-alloc.cc
blob: 558a2f2bcf12ff70e28ce44ff999536f9ea785b1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "gc-alloc.hh"

#include <cstring>
#include <string_view>

namespace nix
{

char const * gcCopyStringIfNeeded(std::string_view toCopyFrom)
{
    if (toCopyFrom.empty()) {
        return "";
    }

    size_t const size = toCopyFrom.size();
    char * cstr = gcAllocString(size + 1);
    memcpy(cstr, toCopyFrom.data(), size);
    cstr[size] = '\0';

    return cstr;
}

}