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:
parent
adc02cce18
commit
0824b52425
4 changed files with 42 additions and 7 deletions
|
@ -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.
|
||||
|
|
|
@ -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. */
|
||||
|
|
|
@ -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. */
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue