summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2016-01-26 19:59:10 +0100
committerBram Moolenaar <Bram@vim.org>2016-01-26 19:59:10 +0100
commit6650a694547eb744afa060ec62dd8270e99db9f2 (patch)
tree89b5b88b9f5d53d6bb484e3ab6c5fb13c13e4c40
parentac80999985299dae4a9ef56dbf31fbdb35c04c08 (diff)
patch 7.4.1181v7.4.1181
Problem: free_tv() can't handle special variables. (Damien) Solution: Add the variable type.
-rw-r--r--src/eval.c1
-rw-r--r--src/testdir/test_viml.vim10
-rw-r--r--src/version.c2
3 files changed, 13 insertions, 0 deletions
diff --git a/src/eval.c b/src/eval.c
index 590834fe4a..5f05c3de90 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -21608,6 +21608,7 @@ free_tv(varp)
case VAR_FLOAT:
#endif
case VAR_UNKNOWN:
+ case VAR_SPECIAL:
break;
default:
EMSG2(_(e_intern2), "free_tv()");
diff --git a/src/testdir/test_viml.vim b/src/testdir/test_viml.vim
index 3c140c84d7..f7b34146ac 100644
--- a/src/testdir/test_viml.vim
+++ b/src/testdir/test_viml.vim
@@ -1005,6 +1005,16 @@ func Test_type()
call assert_false(empty(v:true))
call assert_true(empty(v:null))
call assert_true(empty(v:none))
+
+ func ChangeYourMind()
+ try
+ return v:true
+ finally
+ return 'something else'
+ endtry
+ endfunc
+
+ call ChangeYourMind()
endfunc
"-------------------------------------------------------------------------------
diff --git a/src/version.c b/src/version.c
index ee6ac48c4b..53f5dedb46 100644
--- a/src/version.c
+++ b/src/version.c
@@ -747,6 +747,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1181,
+/**/
1180,
/**/
1179,