diff options
author | Felipe Oliveira Carvalho <felipekde@gmail.com> | 2014-05-31 00:40:07 -0300 |
---|---|---|
committer | Felipe Oliveira Carvalho <felipekde@gmail.com> | 2014-06-16 01:40:27 -0300 |
commit | 85100bb01dfebabf4b2557fd6d8a6041f83b0a76 (patch) | |
tree | 3814fd4e7617914dc7b47f1108aa0661411a0e1b | |
parent | 3a9a76c996b590f4a25fcf00afe8e89a85071bad (diff) | |
download | rneovim-85100bb01dfebabf4b2557fd6d8a6041f83b0a76.tar.gz rneovim-85100bb01dfebabf4b2557fd6d8a6041f83b0a76.tar.bz2 rneovim-85100bb01dfebabf4b2557fd6d8a6041f83b0a76.zip |
No OOM in concat_str() (few remaining cases)
Also fixed the duplicated declaration (path.c and strings.c)
-rw-r--r-- | src/nvim/eval.c | 19 | ||||
-rw-r--r-- | src/nvim/strings.c | 2 |
2 files changed, 7 insertions, 14 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c index b5efadb554..faa80ed0fa 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -11914,15 +11914,10 @@ static void f_resolve(typval_T *argvars, typval_T *rettv) * concatenate the remainders. */ q = path_next_component(vim_ispathsep(*buf) ? buf + 1 : buf); if (*q != NUL) { - if (remain == NULL) - remain = vim_strsave(q - 1); - else { - cpy = concat_str(q - 1, remain); - if (cpy != NULL) { - free(remain); - remain = cpy; - } - } + cpy = remain; + remain = remain ? + concat_str(q - 1, remain) : (char_u *) xstrdup((char *)q - 1); + free(cpy); q[-1] = NUL; } @@ -11978,10 +11973,8 @@ static void f_resolve(typval_T *argvars, typval_T *rettv) || vim_ispathsep(p[2])))))) { /* Prepend "./". */ cpy = concat_str((char_u *)"./", p); - if (cpy != NULL) { - free(p); - p = cpy; - } + free(p); + p = cpy; } else if (!is_relative_to_current) { /* Strip leading "./". */ q = p; diff --git a/src/nvim/strings.c b/src/nvim/strings.c index ac0e5e1aef..45aec5841b 100644 --- a/src/nvim/strings.c +++ b/src/nvim/strings.c @@ -15,6 +15,7 @@ #include "nvim/fileio.h" #include "nvim/func_attr.h" #include "nvim/fold.h" +#include "nvim/func_attr.h" #include "nvim/getchar.h" #include "nvim/mark.h" #include "nvim/mbyte.h" @@ -514,7 +515,6 @@ int has_non_ascii(char_u *s) /* * Concatenate two strings and return the result in allocated memory. - * Returns NULL when out of memory. */ char_u *concat_str(char_u *str1, char_u *str2) FUNC_ATTR_NONNULL_RET { |