summaryrefslogtreecommitdiff
path: root/libguile/intrinsics.c
diff options
context:
space:
mode:
Diffstat (limited to 'libguile/intrinsics.c')
-rw-r--r--libguile/intrinsics.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/libguile/intrinsics.c b/libguile/intrinsics.c
index ab6b6a872..ced371161 100644
--- a/libguile/intrinsics.c
+++ b/libguile/intrinsics.c
@@ -419,6 +419,15 @@ allocate_words (scm_thread *thread, size_t n)
}
static SCM
+allocate_words_with_freelist (scm_thread *thread, size_t freelist_idx)
+{
+ return SCM_PACK_POINTER
+ (scm_inline_gc_alloc (&thread->freelists[freelist_idx],
+ freelist_idx,
+ SCM_INLINE_GC_KIND_NORMAL));
+}
+
+static SCM
current_module (scm_thread *thread)
{
return scm_i_current_module (thread);
@@ -506,6 +515,7 @@ scm_bootstrap_intrinsics (void)
scm_vm_intrinsics.allocate_words = allocate_words;
scm_vm_intrinsics.current_module = current_module;
scm_vm_intrinsics.push_prompt = push_prompt;
+ scm_vm_intrinsics.allocate_words_with_freelist = allocate_words_with_freelist;
scm_c_register_extension ("libguile-" SCM_EFFECTIVE_VERSION,
"scm_init_intrinsics",