From 437bafe4c8a83ed71ee006eda7f54b65a90f0d4c Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Mon, 1 Aug 2016 15:40:54 +0200 Subject: patch 7.4.2137 Problem: Using function() with a name will find another function when it is redefined. Solution: Add funcref(). Refer to lambda using a partial. Fix several reference counting issues. --- src/if_mzsch.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/if_mzsch.c') diff --git a/src/if_mzsch.c b/src/if_mzsch.c index daec6b0a82..7a462ad54b 100644 --- a/src/if_mzsch.c +++ b/src/if_mzsch.c @@ -3134,7 +3134,7 @@ vim_to_mzscheme_impl(typval_T *vim_value, int depth, Scheme_Hash_Table *visited) /* FIXME: func_ref() and func_unref() are needed. */ /* TODO: Support pt_dict and pt_argv. */ funcname = scheme_make_byte_string( - (char *)vim_value->vval.v_partial->pt_name); + (char *)partial_name(vim_value->vval.v_partial)); MZ_GC_CHECK(); result = scheme_make_closed_prim_w_arity(vim_funcref, funcname, (const char *)BYTE_STRING_VALUE(funcname), 0, -1); -- cgit v1.2.3