added argument validation to future and touch primitives

svn: r16852
This commit is contained in:
James Swaine 2009-11-17 21:30:59 +00:00
parent 7ac3dd6a76
commit 8d3dadc2b5

View File

@ -433,6 +433,10 @@ Scheme_Object *future(int argc, Scheme_Object *argv[])
Scheme_Native_Closure *nc;
Scheme_Native_Closure_Data *ncd;
Scheme_Object *lambda = argv[0];
//Input validation
scheme_check_proc_arity("future", 0, 0, argc, argv);
nc = (Scheme_Native_Closure*)lambda;
ncd = nc->code;
@ -511,6 +515,11 @@ Scheme_Object *touch(int argc, Scheme_Object *argv[])
void *rtcall_retval = NULL;
future_t *ft;
if (!SAME_TYPE(SCHEME_TYPE(argv[0]), scheme_future_type))
{
scheme_wrong_type("touch", "future", 0, argc, argv);
}
ft = (future_t*)argv[0];
#ifdef DEBUG_FUTURES