diff --git a/api/gc-embedder-api.h b/api/gc-embedder-api.h index 28a0fb6de..ec630c26a 100644 --- a/api/gc-embedder-api.h +++ b/api/gc-embedder-api.h @@ -22,7 +22,6 @@ GC_EMBEDDER_API inline int gc_is_valid_conservative_ref_displacement(uintptr_t d GC_EMBEDDER_API inline size_t gc_finalizer_priority_count(void); GC_EMBEDDER_API inline int gc_extern_space_visit(struct gc_extern_space *space, - struct gc_edge edge, struct gc_ref ref) GC_ALWAYS_INLINE; GC_EMBEDDER_API inline void gc_extern_space_start_gc(struct gc_extern_space *space, int is_minor_gc); diff --git a/benchmarks/simple-gc-embedder.h b/benchmarks/simple-gc-embedder.h index 6f329573b..4ad7bb8b2 100644 --- a/benchmarks/simple-gc-embedder.h +++ b/benchmarks/simple-gc-embedder.h @@ -23,7 +23,6 @@ gc_is_valid_conservative_ref_displacement(uintptr_t displacement) { // No external objects in simple benchmarks. static inline int gc_extern_space_visit(struct gc_extern_space *space, - struct gc_edge edge, struct gc_ref ref) { GC_CRASH(); } diff --git a/src/mmc.c b/src/mmc.c index 79e6a709a..86b949f03 100644 --- a/src/mmc.c +++ b/src/mmc.c @@ -146,7 +146,7 @@ do_trace(struct gc_heap *heap, struct gc_edge edge, struct gc_ref ref, else if (large_object_space_contains_with_lock(heap_large_object_space(heap), ref)) return large_object_space_mark(heap_large_object_space(heap), ref); else - return gc_extern_space_visit(heap_extern_space(heap), edge, ref); + return gc_extern_space_visit(heap_extern_space(heap), ref); } static inline int diff --git a/src/pcc.c b/src/pcc.c index c0aef49fd..f57b53b6c 100644 --- a/src/pcc.c +++ b/src/pcc.c @@ -422,7 +422,7 @@ static inline int do_trace(struct gc_heap *heap, struct gc_edge edge, if (large_object_space_contains_with_lock(heap_large_object_space(heap), ref)) return large_object_space_mark(heap_large_object_space(heap), ref); else - return gc_extern_space_visit(heap_extern_space(heap), edge, ref); + return gc_extern_space_visit(heap_extern_space(heap), ref); } static inline int trace_edge(struct gc_heap *heap, struct gc_edge edge, diff --git a/src/semi.c b/src/semi.c index 0cca01868..9eaa6530d 100644 --- a/src/semi.c +++ b/src/semi.c @@ -236,13 +236,12 @@ static int semi_space_contains(struct semi_space *space, struct gc_ref ref) { static void visit_external_object(struct gc_heap *heap, struct gc_extern_space *space, - struct gc_edge edge, - struct gc_ref old_ref) { - if (gc_extern_space_visit(space, edge, old_ref)) { + struct gc_ref ref) { + if (gc_extern_space_visit(space, ref)) { if (GC_UNLIKELY(heap->check_pending_ephemerons)) - gc_resolve_pending_ephemerons(old_ref, heap); + gc_resolve_pending_ephemerons(ref, heap); - gc_trace_object(gc_edge_ref(edge), trace, heap, NULL, NULL); + gc_trace_object(ref, trace, heap, NULL, NULL); } } @@ -256,7 +255,7 @@ static void visit(struct gc_edge edge, struct gc_heap *heap) { ref)) visit_large_object_space(heap, heap_large_object_space(heap), ref); else - visit_external_object(heap, heap->extern_space, edge, ref); + visit_external_object(heap, heap->extern_space, ref); } struct gc_pending_ephemerons *