mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-12 14:50:19 +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>
|
Wed Aug 13 15:38:44 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||||||
|
|
||||||
* * gh_io.c (gh_write): New function.
|
* * gh_io.c (gh_write): New function.
|
||||||
|
|
|
@ -236,20 +236,26 @@ scm_call_with_new_thread (argl)
|
||||||
{
|
{
|
||||||
register SCM args = argl;
|
register SCM args = argl;
|
||||||
SCM thunk, handler;
|
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);
|
thunk = SCM_CAR (args);
|
||||||
SCM_ASSERT (SCM_NFALSEP (scm_thunk_p (thunk)),
|
SCM_ASSERT (SCM_NFALSEP (scm_thunk_p (thunk)),
|
||||||
thunk,
|
thunk,
|
||||||
SCM_ARG1,
|
SCM_ARG1,
|
||||||
s_call_with_new_thread);
|
s_call_with_new_thread);
|
||||||
args = SCM_CDR (args);
|
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);
|
handler = SCM_CAR (args);
|
||||||
SCM_ASSERT (SCM_NFALSEP (scm_procedure_p (handler)),
|
SCM_ASSERT (SCM_NFALSEP (scm_procedure_p (handler)),
|
||||||
handler,
|
handler,
|
||||||
SCM_ARG2,
|
SCM_ARG2,
|
||||||
s_call_with_new_thread);
|
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. */
|
/* Make new thread. */
|
||||||
|
|
|
@ -294,20 +294,26 @@ scm_call_with_new_thread (argl)
|
||||||
{
|
{
|
||||||
register SCM args = argl;
|
register SCM args = argl;
|
||||||
SCM thunk, handler;
|
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);
|
thunk = SCM_CAR (args);
|
||||||
SCM_ASSERT (SCM_NFALSEP (scm_thunk_p (thunk)),
|
SCM_ASSERT (SCM_NFALSEP (scm_thunk_p (thunk)),
|
||||||
thunk,
|
thunk,
|
||||||
SCM_ARG1,
|
SCM_ARG1,
|
||||||
s_call_with_new_thread);
|
s_call_with_new_thread);
|
||||||
args = SCM_CDR (args);
|
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);
|
handler = SCM_CAR (args);
|
||||||
SCM_ASSERT (SCM_NFALSEP (scm_procedure_p (handler)),
|
SCM_ASSERT (SCM_NFALSEP (scm_procedure_p (handler)),
|
||||||
handler,
|
handler,
|
||||||
SCM_ARG2,
|
SCM_ARG2,
|
||||||
s_call_with_new_thread);
|
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. */
|
/* Make new thread. */
|
||||||
|
|
|
@ -351,7 +351,10 @@ scm_make_stack (args)
|
||||||
SCM stack, id;
|
SCM stack, id;
|
||||||
SCM obj, inner_cut, outer_cut;
|
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);
|
obj = SCM_CAR (args);
|
||||||
args = SCM_CDR (args);
|
args = SCM_CDR (args);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue