1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-07-06 17:40:29 +02:00

Dynstack uses inline functions instead of macros

* libguile/control.c:
* libguile/dynstack.c:
* libguile/dynstack.h:
* libguile/vm.c: Move SCM_DYNSTACK_TAG etc to be inline functions.
Adapt all callers.
This commit is contained in:
Andy Wingo 2025-06-30 14:16:52 +02:00
parent 985c1d16f2
commit 2b3b843f82
4 changed files with 158 additions and 93 deletions

View file

@ -1192,13 +1192,13 @@ compose_continuation (scm_thread *thread, SCM cont)
{
scm_t_bits *walk;
for (walk = SCM_DYNSTACK_FIRST (cp->dynstack);
SCM_DYNSTACK_TAG (walk);
walk = SCM_DYNSTACK_NEXT (walk))
for (walk = scm_dynstack_first (cp->dynstack);
scm_dynstack_tag (walk);
walk = scm_dynstack_next (walk))
{
scm_t_bits tag = SCM_DYNSTACK_TAG (walk);
scm_t_bits tag = scm_dynstack_tag (walk);
if (SCM_DYNSTACK_TAG_TYPE (tag) == SCM_DYNSTACK_TYPE_PROMPT)
if (scm_dynstack_tag_type (tag) == SCM_DYNSTACK_TYPE_PROMPT)
scm_dynstack_wind_prompt (&thread->dynstack, walk, old_fp_offset,
thread->vm.registers);
else
@ -1413,7 +1413,7 @@ abort_to_prompt (scm_thread *thread, uint8_t *saved_mra)
{
scm_t_dynstack *captured;
captured = scm_dynstack_capture (dynstack, SCM_DYNSTACK_NEXT (prompt));
captured = scm_dynstack_capture (dynstack, scm_dynstack_next (prompt));
cont = capture_delimited_continuation (thread, vp, fp, saved_mra,
registers, captured,
thread->vm.registers);