Ejemplo n.º 1
0
void ex_mref( PVal *pval, int prm )
{
    int t,size;
    void *ptr;
    const int GETBM=0x60;
    t = HSPVAR_FLAG_INT;
    size = 4;
    if ( prm >= GETBM ) {
        throw HSPERR_UNSUPPORTED_FUNCTION;
    } else {
        switch( prm ) {
            case 0x40:
                ptr = &ctx->stat;
                break;
            case 0x41:
                ptr = ctx->refstr;
                t = HSPVAR_FLAG_STR;
                size = 1024;
                break;
            case 0x44:
                ptr = ctx; size = sizeof(HSPCTX);
                break;
            default:
                throw HSPERR_UNSUPPORTED_FUNCTION;
        }
    }
    HspVarCoreDupPtr( pval, t, ptr, size );
}
Ejemplo n.º 2
0
void HspVarCoreDup( PVal *pval, PVal *arg, APTR aptr )
{
	//		指定された変数のクローンになる
	//
	int size;
	PDAT *buf;
	HspVarProc *p;
	p = &hspvarproc[ arg->flag ];
	buf = HspVarCorePtrAPTR( arg, aptr );
	HspVarCoreGetBlockSize( arg, buf, &size );
	HspVarCoreDupPtr( pval, arg->flag, buf, size );
}