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; } }