void HspVarCoreReDim( PVal *pval, int lenid, int len ) { // 配列を拡張する // HspVarProc *p; p = &hspvarproc[ pval->flag ]; pval->len[lenid] = len; p->Alloc( pval, pval ); }
void HspVarCoreDimFlex( PVal *pval, int flag, int len0, int len1, int len2, int len3, int len4 ) { // 配列を確保する(可変長配列用) // (len1~len4は、4byte単位なので注意) // HspVarProc *p; p = &hspvarproc[ flag ]; if ((len1<0)||(len2<0)||(len3<0)||(len4<0)) throw HSPVAR_ERROR_ILLEGALPRM; HspVarCoreDispose( pval ); pval->flag = flag; pval->len[0] = len0; pval->offset = 0; pval->arraycnt = 0; pval->support = p->support; pval->len[1] = len1; pval->len[2] = len2; pval->len[3] = len3; pval->len[4] = len4; p->Alloc( pval, NULL ); pval->len[0] = 1; }
static void pv_alloc( HSPEXINFO *hei, PVal *pv, PVal *pv2 ) { HspVarProc *varproc; varproc = hei->HspFunc_getproc( pv->flag ); varproc->Alloc( pv, pv2 ); }