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

Move struct scm_thread definition to private header

Allows us to inline the "struct scm_dynamic_state", avoiding an untagged
traced allocation.

* libguile/threads-internal.h: New file.
* libguile/Makefile.am (noinst_HEADERS): Add new file.

Adapt all users, notably of SCM_I_CURRENT_THREAD and scm_i_misc_mutex.
This commit is contained in:
Andy Wingo 2025-06-25 10:46:43 +02:00
parent a6b848dcba
commit 552960b3e2
73 changed files with 244 additions and 211 deletions

View file

@ -36,7 +36,7 @@
#include "eval.h"
#include "fluids-internal.h"
#include "variable.h"
#include "threads.h"
#include "threads-internal.h"
#include "trace.h"
#include "dynstack.h"
@ -442,7 +442,7 @@ scm_dynstack_wind_1 (scm_t_dynstack *dynstack, scm_t_bits *item)
case SCM_DYNSTACK_TYPE_WITH_FLUID:
scm_swap_fluid (WITH_FLUID_FLUID (item),
WITH_FLUID_VALUE_BOX (item),
SCM_I_CURRENT_THREAD->dynamic_state);
&SCM_I_CURRENT_THREAD->dynamic_state);
break;
case SCM_DYNSTACK_TYPE_PROMPT:
@ -499,7 +499,7 @@ scm_dynstack_unwind_1 (scm_t_dynstack *dynstack)
case SCM_DYNSTACK_TYPE_WITH_FLUID:
scm_swap_fluid (WITH_FLUID_FLUID (words),
WITH_FLUID_VALUE_BOX (words),
SCM_I_CURRENT_THREAD->dynamic_state);
&SCM_I_CURRENT_THREAD->dynamic_state);
clear_scm_t_bits (words, WITH_FLUID_WORDS);
break;