194 |
base = vs_top; vs_top +=n; |
base = vs_top; vs_top +=n; |
195 |
while (--n>=0) { base[n] = b[n];}} |
while (--n>=0) { base[n] = b[n];}} |
196 |
vs_check; |
vs_check; |
197 |
|
if (nargs < F_MIN_ARGS(fun->sfn.sfn_argd)) |
198 |
|
FEtoo_few_arguments(base,vs_top); |
199 |
|
if (nargs > F_MAX_ARGS(fun->sfn.sfn_argd)) |
200 |
|
FEtoo_many_arguments(base,vs_top); |
201 |
switch(type_of(fun)) { |
switch(type_of(fun)) { |
202 |
case t_closure: |
case t_closure: |
203 |
case t_afun: |
case t_afun: |
205 |
ihs_check; |
ihs_check; |
206 |
VFUN_NARGS=nargs; |
VFUN_NARGS=nargs; |
207 |
fcall.fun = fun; |
fcall.fun = fun; |
|
if (nargs < F_MIN_ARGS(fun->sfn.sfn_argd)) |
|
|
FEtoo_few_arguments(base,vs_top); |
|
|
if (nargs > F_MAX_ARGS(fun->sfn.sfn_argd)) |
|
|
FEtoo_many_arguments(base,vs_top); |
|
208 |
atypes = F_TYPES(fun->sfn.sfn_argd) >> F_TYPE_WIDTH; |
atypes = F_TYPES(fun->sfn.sfn_argd) >> F_TYPE_WIDTH; |
209 |
if (atypes==0) {abase = base;} |
if (atypes==0) {abase = base;} |
210 |
else { abase = vs_top; |
else { abase = vs_top; |