Пример #1
0
    GLConstArrayWrapper(OS * p_os, int offs, int req_values = 0): os(p_os)
    {
        bool valid_type = os->isArray(offs) || os->isObject(offs);
        int param_size = valid_type ? os->getLen(offs) : 0;

        src_size = req_values > 0 ? req_values : param_size;
        if(src_size < 1) {
            OS_ASSERT(false);
            src = NULL;
            return;
        }
        src = (T*)os->malloc(sizeof(*src) * src_size OS_DBG_FILEPOS);

        int i = 0;
        os->pushStackValue(offs);
        for(; i < param_size && os->nextIteratorStep(); i++) {
            src[i] = (T)os->toNumber(-1);
            os->pop(2);
        }
        os->pop();

        for(; i < src_size; i++) {
            src[i] = (T)0;
        }
    }