wingo pushed a commit to branch wip-whippet
in repository guile.

commit c86408a33c4dc7e225e014a300daf4a329d52961
Author: Andy Wingo <wi...@igalia.com>
AuthorDate: Mon May 5 10:42:28 2025 +0200

    Fix ephemeron death for bdw
    
    * src/bdw.c (gc_ephemeron_init): Fix misuse of disappearing-link API.
---
 src/bdw.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/bdw.c b/src/bdw.c
index 1403d64f2..046e0181d 100644
--- a/src/bdw.c
+++ b/src/bdw.c
@@ -248,7 +248,8 @@ void gc_ephemeron_init(struct gc_mutator *mut, struct 
gc_ephemeron *ephemeron,
   gc_ephemeron_init_internal(mut->heap, ephemeron, key, value);
   if (GC_base((void*)gc_ref_value(key))) {
     struct gc_ref *loc = gc_edge_loc(gc_ephemeron_key_edge(ephemeron));
-    GC_register_disappearing_link((void**)loc);
+    GC_general_register_disappearing_link((void**)loc,
+                                          gc_ref_heap_object(key));
   }
 }
 

Reply via email to