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

Refactor relationship between gc_mutator_roots and threads

* libguile/threads.c (guilify_self_1):
* libguile/whippet-embedder.h (gc_trace_mutator_pinned_roots): Make the
roots contain the thread.  This way sizeof(*thread) is the total
allocation size; if you pad the allocation with extra words, some of the
self-checks in nofl get borked.
This commit is contained in:
Andy Wingo 2025-07-02 21:33:12 +02:00
parent e23adeafd3
commit 75f1f20031
2 changed files with 5 additions and 13 deletions

View file

@ -39,7 +39,7 @@
struct scm_thread;
struct gc_mutator_roots {
struct scm_thread *thread;
struct scm_thread thread;
};
#define GC_EMBEDDER_EPHEMERON_HEADER uintptr_t tag;
@ -129,7 +129,7 @@ gc_trace_mutator_pinned_roots (struct gc_mutator_roots *roots,
void *trace_data),
struct gc_heap *heap,
void *trace_data) {
scm_trace_thread_roots (roots->thread, trace_pinned, trace_ambiguous,
scm_trace_thread_roots (&roots->thread, trace_pinned, trace_ambiguous,
heap, trace_data);
}