aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/eval.c17
1 files changed, 9 insertions, 8 deletions
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, "<lambda>", 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);
}
}
}