Exemplo n.º 1
0
 void VMThread::setNameFrom(const char* name)
 {
     size_t nameLength = VMPI_strlen(name);
     char* buf = new char[nameLength + 1];
     VMPI_strncpy(buf, name, nameLength + 1);
     m_name = buf;
 }
Exemplo n.º 2
0
static int setenv_with_putenv(const char *name, const char *value)
{
    if(NULL != VMPI_strchr(name, '='))
    {
        errno = EINVAL;
        return -1;
    }
    else
    {
        size_t  nameLen     =   VMPI_strlen(name);
        size_t  valueLen    =   VMPI_strlen(value);
        size_t  required    =   1 + nameLen + 1 + valueLen;
        char    buffer_[101];
        char    *buffer     =   (ARRAY_SIZE(buffer_) < required)
                                    ? (char*)malloc(required * sizeof(char))
                                    : &buffer_[0];

        if(NULL == buffer)
        {
            errno = ENOMEM;
            return -1;
        }
        else
        {
            int r;
            (void)VMPI_strncpy(&buffer[0], name, nameLen);
            buffer[nameLen] = '=';
            buffer[nameLen + 1] = '\0';
            (void)VMPI_strncpy(&buffer[nameLen + 1], value, valueLen);
            buffer[nameLen + 1 + valueLen] = '\0';

            r = _putenv(&buffer[0]);

            if(buffer != &buffer_[0])
            {
                VMPI_free(buffer);
            }

            return r;
        }
    }
}
Exemplo n.º 3
0
 char* string2char(AvmCore* core, Stringp str)
 {
     if (!str->length()) return 0;
     StringNullTerminatedUTF8 s(core->gc, str);
     const char* cstr = s.c_str();
     size_t max = VMPI_strlen(cstr);
     char* to = (char*)malloc((max+1)*sizeof(char));
     VMPI_strncpy(to,cstr,max);
     to[max]='\0';
     return to;
 }
Exemplo n.º 4
0
 void AvmplusHostContext::doubleToString(double d, char* buf, size_t bufsiz)
 {
     StUTF8String s(MathUtils::convertDoubleToString(core, d));
     VMPI_strncpy(buf, s.c_str(), bufsiz);
     buf[bufsiz-1] = 0;
 }