Esempio n. 1
0
BOOL Range_setValue(MVALUE** stack_ptr, MVALUE* lvar, sVMInfo* info, CLObject vm_type)
{
    CLObject self;
    CLObject value;
    CLObject head_object;
    CLObject tail_object;
    int head_value;
    int tail_value;

    self = lvar->mObjectValue.mValue;           // self

    if(!check_type(self, gRangeTypeObject, info)) {
        return FALSE;
    }

    value = (lvar+1)->mObjectValue.mValue;

    if(!check_type(value, gRangeTypeObject, info)) {
        return FALSE;
    }

    CLRANGE(self)->mHead = CLRANGE(value)->mHead;
    CLRANGE(value)->mTail = CLRANGE(value)->mTail;

    (*stack_ptr)->mObjectValue.mValue = create_null_object();  // push result
    (*stack_ptr)++;

    return TRUE;
}
Esempio n. 2
0
BOOL Range_setTail(MVALUE** stack_ptr, MVALUE* lvar, sVMInfo* info, CLObject vm_type)
{
    CLObject self;
    CLObject value;
    CLObject tail_object;

    self = lvar->mObjectValue.mValue;           // self

    if(!check_type(self, gRangeTypeObject, info)) {
        return FALSE;
    }

    value = (lvar+1)->mObjectValue.mValue;

    if(!check_type_with_nullable(value, gIntTypeObject, info)) {
        return FALSE;
    }

    CLRANGE(self)->mTail = value;

    (*stack_ptr)->mObjectValue.mValue = create_null_object();  // push result
    (*stack_ptr)++;

    return TRUE;
}
Esempio n. 3
0
static CLObject create_null_object_for_new(CLObject type_object, sVMInfo* info)
{
    CLObject obj;

    obj = create_null_object();
    CLOBJECT_HEADER(obj)->mType = type_object;

    return obj;
}