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

commit 18dac263a10e441b3219ee180f602c0d238eb3d8
Author: Andy Wingo <wi...@pobox.com>
AuthorDate: Tue Jul 1 15:38:33 2025 +0200

    Pin bytevectors passed to bytevector->pointer
    
    * libguile/foreign.c (scm_bytevector_to_pointer): Pin bv.
---
 libguile/foreign.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/libguile/foreign.c b/libguile/foreign.c
index 21495b166..4a288d02c 100644
--- a/libguile/foreign.c
+++ b/libguile/foreign.c
@@ -362,6 +362,8 @@ SCM_DEFINE (scm_bytevector_to_pointer, 
"bytevector->pointer", 1, 1, 0,
     : scm_to_unsigned_integer (offset, 0,
                                SCM_BYTEVECTOR_LENGTH (bv) - 1);
 
+  scm_gc_pin_object (SCM_I_CURRENT_THREAD, bv);
+
   return make_pointer_1 ((uintptr_t)(ptr + boffset), bv);
 }
 #undef FUNC_NAME

Reply via email to