summaryrefslogtreecommitdiff
path: root/libguile/vm-i-system.c
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2009-02-05 00:20:51 +0100
committerAndy Wingo <wingo@pobox.com>2009-02-05 00:20:51 +0100
commit7edf2001274262ec7362c1dc96480aff8e176585 (patch)
treec3597bfe3644c61d35753bb5958cc9b03546c3ea /libguile/vm-i-system.c
parent6d14383e866f447a0d2656fd319ba68a5737202c (diff)
downloadguile-7edf2001274262ec7362c1dc96480aff8e176585.tar.gz
inline call to scm_make_program when making closures
* libguile/programs.c (scm_make_program): Add a comment. * libguile/vm-engine.h (INIT_ARGS): Add a couple of UNLIKELY notes. * libguile/vm-i-system.c (make-closure): Inline the call to scm_make_program, which avoids some redundant checks.
Diffstat (limited to 'libguile/vm-i-system.c')
-rw-r--r--libguile/vm-i-system.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/libguile/vm-i-system.c b/libguile/vm-i-system.c
index 1dfec4822..06d9e8940 100644
--- a/libguile/vm-i-system.c
+++ b/libguile/vm-i-system.c
@@ -473,9 +473,8 @@ VM_DEFINE_INSTRUCTION (37, br_if_not_null, "br-if-not-null", 2, 0, 0)
VM_DEFINE_INSTRUCTION (38, make_closure, "make-closure", 0, 1, 1)
{
SYNC_BEFORE_GC ();
- *sp = scm_make_program (SCM_PROGRAM_OBJCODE (*sp),
- SCM_PROGRAM_OBJTABLE (*sp),
- external);
+ SCM_NEWSMOB3 (*sp, scm_tc16_program, SCM_PROGRAM_OBJCODE (*sp),
+ SCM_PROGRAM_OBJTABLE (*sp), external);
NEXT;
}