diff options
author | Andy Wingo <wingo@pobox.com> | 2009-02-05 00:20:51 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2009-02-05 00:20:51 +0100 |
commit | 7edf2001274262ec7362c1dc96480aff8e176585 (patch) | |
tree | c3597bfe3644c61d35753bb5958cc9b03546c3ea /libguile/vm-i-system.c | |
parent | 6d14383e866f447a0d2656fd319ba68a5737202c (diff) | |
download | guile-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.c | 5 |
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; } |