diff options
Diffstat (limited to 'libguile/vm-i-loader.c')
-rw-r--r-- | libguile/vm-i-loader.c | 24 |
1 files changed, 1 insertions, 23 deletions
diff --git a/libguile/vm-i-loader.c b/libguile/vm-i-loader.c index 515001d61..b231d392f 100644 --- a/libguile/vm-i-loader.c +++ b/libguile/vm-i-loader.c @@ -124,29 +124,7 @@ VM_DEFINE_INSTRUCTION (66, link_now, "link-now", 0, 1, 1) SCM what; POP (what); SYNC_REGISTER (); - if (SCM_LIKELY (SCM_SYMBOLP (what))) - { - PUSH (scm_lookup (what)); /* might longjmp */ - } - else - { - SCM mod; - /* compilation of @ or @@ - `what' is a three-element list: (MODNAME SYM INTERFACE?) - INTERFACE? is #t if we compiled @ or #f if we compiled @@ - */ - mod = scm_resolve_module (SCM_CAR (what)); - if (scm_is_true (SCM_CADDR (what))) - mod = scm_module_public_interface (mod); - if (SCM_FALSEP (mod)) - { - finish_args = scm_list_1 (SCM_CAR (what)); - goto vm_error_no_such_module; - } - /* might longjmp */ - PUSH (scm_module_lookup (mod, SCM_CADR (what))); - } - + PUSH (resolve_variable (what, scm_current_module ())); NEXT; } |