changeset 7768:3d8e4e0d7127 v7.4.1181

commit https://github.com/vim/vim/commit/6650a694547eb744afa060ec62dd8270e99db9f2 Author: Bram Moolenaar <Bram@vim.org> Date: Tue Jan 26 19:59:10 2016 +0100 patch 7.4.1181 Problem: free_tv() can't handle special variables. (Damien) Solution: Add the variable type.
author Christian Brabandt <cb@256bit.org>
date Tue, 26 Jan 2016 20:00:05 +0100
parents c9daa07abf34
children 3bdef7bd2244
files src/eval.c src/testdir/test_viml.vim src/version.c
diffstat 3 files changed, 13 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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()");
--- 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
 
 "-------------------------------------------------------------------------------
--- 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,