Mercurial > vim
comparison src/buffer.c @ 13244:ac42c4b11dbc v8.0.1496
patch 8.0.1496: clearing a pointer takes two lines
commit https://github.com/vim/vim/commit/d23a823669d93fb2a570a039173eefe4856ac806
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Feb 10 18:45:26 2018 +0100
patch 8.0.1496: clearing a pointer takes two lines
Problem: Clearing a pointer takes two lines.
Solution: Add VIM_CLEAR() and replace vim_clear(). (Hirohito Higashi,
closes #2629)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sat, 10 Feb 2018 19:00:07 +0100 |
parents | 6559e98f3e74 |
children | b5806be0b36d |
comparison
equal
deleted
inserted
replaced
13243:899b19739188 | 13244:ac42c4b11dbc |
---|---|
942 #ifdef FEAT_LOCALMAP | 942 #ifdef FEAT_LOCALMAP |
943 map_clear_int(buf, MAP_ALL_MODES, TRUE, FALSE); /* clear local mappings */ | 943 map_clear_int(buf, MAP_ALL_MODES, TRUE, FALSE); /* clear local mappings */ |
944 map_clear_int(buf, MAP_ALL_MODES, TRUE, TRUE); /* clear local abbrevs */ | 944 map_clear_int(buf, MAP_ALL_MODES, TRUE, TRUE); /* clear local abbrevs */ |
945 #endif | 945 #endif |
946 #ifdef FEAT_MBYTE | 946 #ifdef FEAT_MBYTE |
947 vim_free(buf->b_start_fenc); | 947 VIM_CLEAR(buf->b_start_fenc); |
948 buf->b_start_fenc = NULL; | |
949 #endif | 948 #endif |
950 } | 949 } |
951 | 950 |
952 /* | 951 /* |
953 * Free the b_wininfo list for buffer "buf". | 952 * Free the b_wininfo list for buffer "buf". |
2035 buf->b_wininfo = (wininfo_T *)alloc_clear((unsigned)sizeof(wininfo_T)); | 2034 buf->b_wininfo = (wininfo_T *)alloc_clear((unsigned)sizeof(wininfo_T)); |
2036 | 2035 |
2037 if ((ffname != NULL && (buf->b_ffname == NULL || buf->b_sfname == NULL)) | 2036 if ((ffname != NULL && (buf->b_ffname == NULL || buf->b_sfname == NULL)) |
2038 || buf->b_wininfo == NULL) | 2037 || buf->b_wininfo == NULL) |
2039 { | 2038 { |
2040 vim_free(buf->b_ffname); | 2039 VIM_CLEAR(buf->b_ffname); |
2041 buf->b_ffname = NULL; | 2040 VIM_CLEAR(buf->b_sfname); |
2042 vim_free(buf->b_sfname); | |
2043 buf->b_sfname = NULL; | |
2044 if (buf != curbuf) | 2041 if (buf != curbuf) |
2045 free_buffer(buf); | 2042 free_buffer(buf); |
2046 return NULL; | 2043 return NULL; |
2047 } | 2044 } |
2048 | 2045 |
3134 #endif | 3131 #endif |
3135 | 3132 |
3136 if (ffname == NULL || *ffname == NUL) | 3133 if (ffname == NULL || *ffname == NUL) |
3137 { | 3134 { |
3138 /* Removing the name. */ | 3135 /* Removing the name. */ |
3139 vim_free(buf->b_ffname); | 3136 VIM_CLEAR(buf->b_ffname); |
3140 vim_free(buf->b_sfname); | 3137 VIM_CLEAR(buf->b_sfname); |
3141 buf->b_ffname = NULL; | |
3142 buf->b_sfname = NULL; | |
3143 #ifdef UNIX | 3138 #ifdef UNIX |
3144 st.st_dev = (dev_T)-1; | 3139 st.st_dev = (dev_T)-1; |
3145 #endif | 3140 #endif |
3146 } | 3141 } |
3147 else | 3142 else |
4259 if (str != NULL && *str != 0) | 4254 if (str != NULL && *str != 0) |
4260 { | 4255 { |
4261 if (*skipdigits(str) == NUL) | 4256 if (*skipdigits(str) == NUL) |
4262 { | 4257 { |
4263 num = atoi((char *)str); | 4258 num = atoi((char *)str); |
4264 vim_free(str); | 4259 VIM_CLEAR(str); |
4265 str = NULL; | |
4266 itemisflag = FALSE; | 4260 itemisflag = FALSE; |
4267 } | 4261 } |
4268 } | 4262 } |
4269 #endif | 4263 #endif |
4270 break; | 4264 break; |