NOINLINE void replace_all()

in src/dxapi/native/platform/platform.cpp [162:180]


NOINLINE void replace_all(std::string * const dest, const char *src, const char *from, const char *to)
{
    if (NULL == dest || NULL == src || NULL == from || NULL == to) {
        throw std::invalid_argument("one of the arguments is NULL");
    }

    size_t from_len = strlen_ni(from);
    
    dest->clear();
    while ('\0' != (*src)) {
        if (0 == strncmp(src, from, from_len)) {
            dest->append(to);
            src += from_len;
        }
        else {
            dest->push_back(*src++);
        }
    }
}