Merge #8565 from janlazo/vim-8.0.0575

This commit is contained in:
Justin M. Keyes 2018-06-16 12:42:05 +02:00 committed by GitHub
commit eeeaf04c5e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 21 additions and 2 deletions

View File

@ -520,7 +520,7 @@ int inindent(int extra)
// Get indent level from 'indentexpr'. // Get indent level from 'indentexpr'.
int get_expr_indent(void) int get_expr_indent(void)
{ {
int indent; int indent = -1;
pos_T save_pos; pos_T save_pos;
colnr_T save_curswant; colnr_T save_curswant;
int save_set_curswant; int save_set_curswant;
@ -538,7 +538,14 @@ int get_expr_indent(void)
sandbox++; sandbox++;
} }
textlock++; textlock++;
indent = (int)eval_to_number(curbuf->b_p_inde);
// Need to make a copy, the 'indentexpr' option could be changed while
// evaluating it.
char_u *inde_copy = vim_strsave(curbuf->b_p_inde);
if (inde_copy != NULL) {
indent = (int)eval_to_number(inde_copy);
xfree(inde_copy);
}
if (use_sandbox) { if (use_sandbox) {
sandbox--; sandbox--;

View File

@ -275,3 +275,15 @@ func Test_complete()
set complete& set complete&
endfun endfun
func ResetIndentexpr()
set indentexpr=
endfunc
func Test_set_indentexpr()
" this was causing usage of freed memory
set indentexpr=ResetIndentexpr()
new
call feedkeys("i\<c-f>", 'x')
call assert_equal('', &indentexpr)
bwipe!
endfunc