diff options
Diffstat (limited to 'libguile/intrinsics.c')
-rw-r--r-- | libguile/intrinsics.c | 10 |
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", |