diff options
author | Mikael Djurfeldt <djurfeldt@nada.kth.se> | 1997-08-14 15:00:03 +0000 |
---|---|---|
committer | Mikael Djurfeldt <djurfeldt@nada.kth.se> | 1997-08-14 15:00:03 +0000 |
commit | 0824b52425e03fe1b3c0b6e6b29b127b39ad37ef (patch) | |
tree | a4c8c5a4123fdf48ec35a5ed97d13f5cc316ae92 | |
parent | adc02cce188dbc20400197af7ee6f7ceac2e108e (diff) | |
download | guile-0824b52425e03fe1b3c0b6e6b29b127b39ad37ef.tar.gz |
* stacks.c (scm_make_stack), coop-threads.c, mit-pthreads.c
(scm_call_with_new_thread): Bugfix: SCM_WNA should go as third
argument to SCM_ASSERT. Furthermore, the name of the function
should be passed as first argument when signalling
SCM_WNA. (Thanks to Thomas Morgan)
-rw-r--r-- | libguile/ChangeLog | 20 | ||||
-rw-r--r-- | libguile/coop-threads.c | 12 | ||||
-rw-r--r-- | libguile/mit-pthreads.c | 12 | ||||
-rw-r--r-- | libguile/stacks.c | 5 |
4 files changed, 42 insertions, 7 deletions
diff --git a/libguile/ChangeLog b/libguile/ChangeLog index ae773cdbf..2771382db 100644 --- a/libguile/ChangeLog +++ b/libguile/ChangeLog @@ -1,3 +1,23 @@ +1997-08-14 Mikael Djurfeldt <mdj@mdj.nada.kth.se> + + * stacks.c (scm_make_stack), coop-threads.c, mit-pthreads.c + (scm_call_with_new_thread): Bugfix: SCM_WNA should go as third + argument to SCM_ASSERT. Furthermore, the name of the function + should be passed as first argument when signalling + SCM_WNA. (Thanks to Thomas Morgan) + + * gsubr.c (scm_gsubr_apply): From Radey Shouman + <shouman@zianet.com>: "The switch in scm_gsubr_apply that + dispatches on the number of actual args has a default case + reporting an internal error. This is a vestige from a version + that mallocated a SCM vector to hold the arguments. In the + current version this check is too late: if it ever happens we will + have already overstepped the bounds of the array. + + Also, the patch [...] adds a check for too many actual arguments." + + mdj: Removed check for "internal programming error". + Wed Aug 13 15:38:44 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se> * * gh_io.c (gh_write): New function. diff --git a/libguile/coop-threads.c b/libguile/coop-threads.c index 0d88f7ca4..b3fad95f4 100644 --- a/libguile/coop-threads.c +++ b/libguile/coop-threads.c @@ -236,20 +236,26 @@ scm_call_with_new_thread (argl) { register SCM args = argl; SCM thunk, handler; - SCM_ASSERT (SCM_NIMP (args), argl, SCM_WNA, s_call_with_new_thread); + SCM_ASSERT (SCM_NIMP (args), + scm_makfrom0str (s_call_with_new_thread), + SCM_WNA, NULL); thunk = SCM_CAR (args); SCM_ASSERT (SCM_NFALSEP (scm_thunk_p (thunk)), thunk, SCM_ARG1, s_call_with_new_thread); args = SCM_CDR (args); - SCM_ASSERT (SCM_NIMP (args), argl, SCM_WNA, s_call_with_new_thread); + SCM_ASSERT (SCM_NIMP (args), + scm_makfrom0str (s_call_with_new_thread), + SCM_WNA, NULL); handler = SCM_CAR (args); SCM_ASSERT (SCM_NFALSEP (scm_procedure_p (handler)), handler, SCM_ARG2, s_call_with_new_thread); - SCM_ASSERT (SCM_NULLP (SCM_CDR (args)), argl, SCM_WNA, s_call_with_new_thread); + SCM_ASSERT (SCM_NULLP (SCM_CDR (args)), + scm_makfrom0str (s_call_with_new_thread), + SCM_WNA, NULL); } /* Make new thread. */ diff --git a/libguile/mit-pthreads.c b/libguile/mit-pthreads.c index a00aa54f1..2270f5cb0 100644 --- a/libguile/mit-pthreads.c +++ b/libguile/mit-pthreads.c @@ -294,20 +294,26 @@ scm_call_with_new_thread (argl) { register SCM args = argl; SCM thunk, handler; - SCM_ASSERT (SCM_NIMP (args), argl, SCM_WNA, s_call_with_new_thread); + SCM_ASSERT (SCM_NIMP (args), + scm_makfrom0str (s_call_with_new_thread), + SCM_WNA, NULL); thunk = SCM_CAR (args); SCM_ASSERT (SCM_NFALSEP (scm_thunk_p (thunk)), thunk, SCM_ARG1, s_call_with_new_thread); args = SCM_CDR (args); - SCM_ASSERT (SCM_NIMP (args), argl, SCM_WNA, s_call_with_new_thread); + SCM_ASSERT (SCM_NIMP (args), + scm_makfrom0str (s_call_with_new_thread), + SCM_WNA, NULL); handler = SCM_CAR (args); SCM_ASSERT (SCM_NFALSEP (scm_procedure_p (handler)), handler, SCM_ARG2, s_call_with_new_thread); - SCM_ASSERT (SCM_NULLP (SCM_CDR (args)), argl, SCM_WNA, s_call_with_new_thread); + SCM_ASSERT (SCM_NULLP (SCM_CDR (args)), + scm_makfrom0str (s_call_with_new_thread), + SCM_WNA, NULL); } /* Make new thread. */ diff --git a/libguile/stacks.c b/libguile/stacks.c index 6be4ffca1..0e6598351 100644 --- a/libguile/stacks.c +++ b/libguile/stacks.c @@ -351,7 +351,10 @@ scm_make_stack (args) SCM stack, id; SCM obj, inner_cut, outer_cut; - SCM_ASSERT (SCM_NIMP (args) && SCM_CONSP (args), SCM_WNA, args, s_make_stack); + SCM_ASSERT (SCM_NIMP (args) && SCM_CONSP (args), + scm_makfrom0str (s_make_stack), + SCM_WNA, + NULL); obj = SCM_CAR (args); args = SCM_CDR (args); |