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

commit 555694965dde4d62b0a0c3091aca344e0c7653c1
Author: Andy Wingo <wi...@igalia.com>
AuthorDate: Fri Jan 10 15:57:49 2025 +0100

    Looking up large object for edge returns the object
---
 src/large-object-space.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/large-object-space.h b/src/large-object-space.h
index 703c048b4..f3470e0e4 100644
--- a/src/large-object-space.h
+++ b/src/large-object-space.h
@@ -123,12 +123,12 @@ large_object_space_contains(struct large_object_space 
*space,
 }
 
 static inline struct gc_ref
-large_object_space_contains_edge(struct large_object_space *space,
-                                 struct gc_edge edge) {
+large_object_space_object_containing_edge(struct large_object_space *space,
+                                          struct gc_edge edge) {
   pthread_mutex_lock(&space->lock);
   struct large_object_node *node =
     large_object_tree_lookup(&space->object_tree, gc_edge_address(edge));
-  uintptr_t addr = node ? node->key.addr : 0;
+  uintptr_t addr = (node && node->value.is_live) ? node->key.addr : 0;
   pthread_mutex_unlock(&space->lock);
   return gc_ref(addr);
 }

Reply via email to