diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-05-25 23:01:42 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-05-25 23:01:42 +0200 |
commit | 1919371b2b9ddb1a645f40b59adbd89317530882 (patch) | |
tree | 2b484363ac53680d71826dc360608b505b91cfe5 /src/eval.c | |
parent | 25e0f5863e9010a75a1ff0d04e8f886403968755 (diff) |
patch 8.2.0824: still not enough memory allocated when converting stringv8.2.0824
Problem: Still not enough memory allocated when converting string with
special character.
Solution: Reserve space for expanding K_SPECIAL. (closes #6130)
Diffstat (limited to 'src/eval.c')
-rw-r--r-- | src/eval.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/eval.c b/src/eval.c index d76ec94102..87b7644251 100644 --- a/src/eval.c +++ b/src/eval.c @@ -3515,10 +3515,11 @@ get_string_tv(char_u **arg, typval_T *rettv, int evaluate) { ++p; // A "\<x>" form occupies at least 4 characters, and produces up - // to 9 characters (6 for the char and 3 for a modifier): reserve - // space for 5 extra. + // to 21 characters (3 * 6 for the char and 3 for a modifier): + // reserve space for 18 extra. + // Each byte in the char could be encoded as K_SPECIAL K_EXTRA x. if (*p == '<') - extra += 5; + extra += 18; } } |