From 6563d859904837790515d790ecadaa4f06064471 Mon Sep 17 00:00:00 2001 From: Michael Ennen Date: Thu, 15 Dec 2016 22:30:05 -0700 Subject: vim-patch:7.4.2104 Problem: Code duplication when unreferencing a function. Solution: De-duplicate. https://github.com/vim/vim/commit/97baee80f0906ee2f651ee1215ec033e84f866ad --- src/nvim/eval.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/nvim/eval.c b/src/nvim/eval.c index 0766fc8ee8..c3812f8e48 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -21960,11 +21960,12 @@ static void func_free(ufunc_T *fp) */ void func_unref(char_u *name) { - ufunc_T *fp; + ufunc_T *fp = NULL; if (name == NULL) { return; - } else if (isdigit(*name)) { + } + if (isdigit(*name)) { fp = find_func(name); if (fp == NULL) { #ifdef EXITFREE @@ -21980,12 +21981,12 @@ void func_unref(char_u *name) } else if (STRNCMP(name, "", 8) == 0) { // fail silently, when lambda function isn't found fp = find_func(name); - if (fp != NULL && --fp->uf_refcount <= 0) { - // Only delete it when it's not being used. Otherwise it's done - // when "uf_calls" becomes zero. - if (fp->uf_calls == 0) { - func_free(fp); - } + } + if (fp != NULL && --fp->uf_refcount <= 0) { + // Only delete it when it's not being used. Otherwise it's done + // when "uf_calls" becomes zero. + if (fp->uf_calls == 0) { + func_free(fp); } } } -- cgit