1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-10 05:50:26 +02:00

* 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)
This commit is contained in:
Mikael Djurfeldt 1997-08-14 15:00:03 +00:00
parent adc02cce18
commit 0824b52425
4 changed files with 42 additions and 7 deletions

View file

@ -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.

View file

@ -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. */

View file

@ -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. */

View file

@ -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);