diff options
author | Felipe Oliveira Carvalho <felipekde@gmail.com> | 2014-04-01 01:41:39 -0300 |
---|---|---|
committer | Thiago de Arruda <tpadilha84@gmail.com> | 2014-04-06 22:54:59 -0300 |
commit | 13848aadbfed94a62505d4e349426990c75d2ae5 (patch) | |
tree | 664873759b05c4e50e879ef7630621dc023d3b56 | |
parent | 6bbffee0a5b4239e3177812c5f5f20133aa60fe8 (diff) | |
download | rneovim-13848aadbfed94a62505d4e349426990c75d2ae5.tar.gz rneovim-13848aadbfed94a62505d4e349426990c75d2ae5.tar.bz2 rneovim-13848aadbfed94a62505d4e349426990c75d2ae5.zip |
Remove simpler cases of OOM error handling (after *alloc calls)
By simpler cases I mean cases where the OOM error is not expected to be handled
by the caller of the function that calls `alloc`, `lalloc`, `xrealloc`,
`xmalloc`, `alloc_clear`, and `lalloc_clear`.
These are the functions that:
- Do not return an allocated buffer
- Have OOM as the only error condition
I took note of the functions that expect the caller to handle the OOM error and
will go through them to check all the callers that may be handling OOM error in
future commits.
I'm ignoring eval.c and ex_.c in this series of commits. eval.c will soon be
obsolete and I will deal with ex_.c in later PRs.
-rw-r--r-- | src/buffer.c | 53 | ||||
-rw-r--r-- | src/diff.c | 51 | ||||
-rw-r--r-- | src/edit.c | 276 | ||||
-rw-r--r-- | src/file_search.c | 51 | ||||
-rw-r--r-- | src/fileio.c | 85 | ||||
-rw-r--r-- | src/fold.c | 10 | ||||
-rw-r--r-- | src/garray.c | 14 | ||||
-rw-r--r-- | src/getchar.c | 46 | ||||
-rw-r--r-- | src/hardcopy.c | 7 | ||||
-rw-r--r-- | src/if_cscope.c | 152 | ||||
-rw-r--r-- | src/indent.c | 12 | ||||
-rw-r--r-- | src/indent_c.c | 19 | ||||
-rw-r--r-- | src/main.c | 15 | ||||
-rw-r--r-- | src/mark.c | 3 | ||||
-rw-r--r-- | src/mbyte.c | 85 | ||||
-rw-r--r-- | src/memline.c | 148 | ||||
-rw-r--r-- | src/memory.c | 3 | ||||
-rw-r--r-- | src/menu.c | 32 | ||||
-rw-r--r-- | src/message.c | 83 | ||||
-rw-r--r-- | src/misc1.c | 323 | ||||
-rw-r--r-- | src/misc2.c | 113 | ||||
-rw-r--r-- | src/normal.c | 10 | ||||
-rw-r--r-- | src/ops.c | 66 | ||||
-rw-r--r-- | src/option.c | 28 | ||||
-rw-r--r-- | src/os/fs.c | 3 | ||||
-rw-r--r-- | src/os_unix.c | 27 | ||||
-rw-r--r-- | src/path.c | 22 | ||||
-rw-r--r-- | src/quickfix.c | 52 | ||||
-rw-r--r-- | src/regexp.c | 39 | ||||
-rw-r--r-- | src/regexp_nfa.c | 32 | ||||
-rw-r--r-- | src/screen.c | 98 | ||||
-rw-r--r-- | src/search.c | 28 | ||||
-rw-r--r-- | src/spell.c | 106 | ||||
-rw-r--r-- | src/syntax.c | 166 | ||||
-rw-r--r-- | src/tag.c | 95 | ||||
-rw-r--r-- | src/term.c | 10 | ||||
-rw-r--r-- | src/ui.c | 33 | ||||
-rw-r--r-- | src/undo.c | 37 | ||||
-rw-r--r-- | src/window.c | 12 |
39 files changed, 945 insertions, 1500 deletions
diff --git a/src/buffer.c b/src/buffer.c index 27f3f5cab6..b104abfa40 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -1369,10 +1369,6 @@ buflist_new ( } if (buf != curbuf || curbuf == NULL) { buf = (buf_T *)alloc_clear((unsigned)sizeof(buf_T)); - if (buf == NULL) { - vim_free(ffname); - return NULL; - } /* init b: variables */ buf->b_vars = dict_alloc(); if (buf->b_vars == NULL) { @@ -1391,8 +1387,7 @@ buflist_new ( clear_wininfo(buf); buf->b_wininfo = (wininfo_T *)alloc_clear((unsigned)sizeof(wininfo_T)); - if ((ffname != NULL && (buf->b_ffname == NULL || buf->b_sfname == NULL)) - || buf->b_wininfo == NULL) { + if (ffname != NULL && (buf->b_ffname == NULL || buf->b_sfname == NULL)) { vim_free(buf->b_ffname); buf->b_ffname = NULL; vim_free(buf->b_sfname); @@ -1837,8 +1832,6 @@ int ExpandBufnames(char_u *pat, int *num_file, char_u ***file, int options) /* Make a copy of "pat" and change "^" to "\(^\|[\/]\)". */ if (*pat == '^') { patc = alloc((unsigned)STRLEN(pat) + 11); - if (patc == NULL) - return FAIL; STRCPY(patc, "\\(^\\|[\\/]\\)"); STRCPY(patc + 11, pat + 1); } else @@ -2001,8 +1994,6 @@ static void buflist_setfpos(buf_T *buf, win_T *win, linenr_T lnum, colnr_T col, if (wip == NULL) { /* allocate a new entry */ wip = (wininfo_T *)alloc_clear((unsigned)sizeof(wininfo_T)); - if (wip == NULL) - return; wip->wi_win = win; if (lnum == 0) /* set lnum even when it's 0 */ lnum = 1; @@ -2523,8 +2514,6 @@ fileinfo ( size_t len; buffer = alloc(IOSIZE); - if (buffer == NULL) - return; if (fullname > 1) { /* 2 CTRL-G: include buffer number */ vim_snprintf((char *)buffer, IOSIZE, "buf %d: ", curbuf->b_fnum); @@ -3700,8 +3689,6 @@ do_arg_all ( opened_len = ARGCOUNT; opened = alloc_clear((unsigned)opened_len); - if (opened == NULL) - return; /* Autocommands may do anything to the argument list. Make sure it's not * freed while we are working here by "locking" it. We still have to @@ -4292,8 +4279,6 @@ void write_viminfo_bufferlist(FILE *fp) /* Allocate room for the file name, lnum and col. */ #define LINE_BUF_LEN (MAXPATHL + 40) line = alloc(LINE_BUF_LEN); - if (line == NULL) - return; FOR_ALL_TAB_WINDOWS(tp, win) set_last_cursor(win); @@ -4380,26 +4365,24 @@ static void insert_sign( signlist_T *newsign; newsign = (signlist_T *)lalloc((long_u)sizeof(signlist_T), FALSE); - if (newsign != NULL) { - newsign->id = id; - newsign->lnum = lnum; - newsign->typenr = typenr; - newsign->next = next; - - if (prev == NULL) { - /* When adding first sign need to redraw the windows to create the - * column for signs. */ - if (buf->b_signlist == NULL) { - redraw_buf_later(buf, NOT_VALID); - changed_cline_bef_curs(); - } - - /* first sign in signlist */ - buf->b_signlist = newsign; - } - else { - prev->next = newsign; + newsign->id = id; + newsign->lnum = lnum; + newsign->typenr = typenr; + newsign->next = next; + + if (prev == NULL) { + /* When adding first sign need to redraw the windows to create the + * column for signs. */ + if (buf->b_signlist == NULL) { + redraw_buf_later(buf, NOT_VALID); + changed_cline_bef_curs(); } + + /* first sign in signlist */ + buf->b_signlist = newsign; + } + else { + prev->next = newsign; } } diff --git a/src/diff.c b/src/diff.c index 0db4890cfe..eb1325b76e 100644 --- a/src/diff.c +++ b/src/diff.c @@ -825,31 +825,29 @@ static void diff_file(char_u *tmp_orig, char_u *tmp_new, char_u *tmp_diff) + STRLEN(p_srr) + 27; char_u *cmd = alloc((unsigned)len); - if (cmd != NULL) { - /* We don't want $DIFF_OPTIONS to get in the way. */ - if (os_getenv("DIFF_OPTIONS")) { - vim_setenv((char_u *)"DIFF_OPTIONS", (char_u *)""); - } - - /* Build the diff command and execute it. Always use -a, binary - * differences are of no use. Ignore errors, diff returns - * non-zero when differences have been found. */ - vim_snprintf((char *)cmd, len, "diff %s%s%s%s%s %s", - diff_a_works == FALSE ? "" : "-a ", - "", - (diff_flags & DIFF_IWHITE) ? "-b " : "", - (diff_flags & DIFF_ICASE) ? "-i " : "", - tmp_orig, tmp_new); - append_redir(cmd, (int)len, p_srr, tmp_diff); - block_autocmds(); /* Avoid ShellCmdPost stuff */ - (void)call_shell( - cmd, - kShellOptFilter | kShellOptSilent | kShellOptDoOut, - NULL - ); - unblock_autocmds(); - vim_free(cmd); - } + /* We don't want $DIFF_OPTIONS to get in the way. */ + if (os_getenv("DIFF_OPTIONS")) { + vim_setenv((char_u *)"DIFF_OPTIONS", (char_u *)""); + } + + /* Build the diff command and execute it. Always use -a, binary + * differences are of no use. Ignore errors, diff returns + * non-zero when differences have been found. */ + vim_snprintf((char *)cmd, len, "diff %s%s%s%s%s %s", + diff_a_works == FALSE ? "" : "-a ", + "", + (diff_flags & DIFF_IWHITE) ? "-b " : "", + (diff_flags & DIFF_ICASE) ? "-i " : "", + tmp_orig, tmp_new); + append_redir(cmd, (int)len, p_srr, tmp_diff); + block_autocmds(); /* Avoid ShellCmdPost stuff */ + (void)call_shell( + cmd, + kShellOptFilter | kShellOptSilent | kShellOptDoOut, + NULL + ); + unblock_autocmds(); + vim_free(cmd); } } @@ -902,9 +900,6 @@ void ex_diffpatch(exarg_T *eap) #endif // ifdef UNIX buf = alloc((unsigned)buflen); - if (buf == NULL) { - goto theend; - } #ifdef UNIX diff --git a/src/edit.c b/src/edit.c index 3b263b40c8..fcb45209cd 100644 --- a/src/edit.c +++ b/src/edit.c @@ -1643,14 +1643,12 @@ change_indent ( curwin->w_cursor.col = (colnr_T)new_cursor_col; i = (int)curwin->w_virtcol - vcol; ptr = alloc((unsigned)(i + 1)); - if (ptr != NULL) { - new_cursor_col += i; - ptr[i] = NUL; - while (--i >= 0) - ptr[i] = ' '; - ins_str(ptr); - vim_free(ptr); - } + new_cursor_col += i; + ptr[i] = NUL; + while (--i >= 0) + ptr[i] = ' '; + ins_str(ptr); + vim_free(ptr); } /* @@ -1987,84 +1985,82 @@ int ins_compl_add_infercase(char_u *str, int len, int icase, char_u *fname, int /* Allocate wide character array for the completion and fill it. */ wca = (int *)alloc((unsigned)(actual_len * sizeof(int))); - if (wca != NULL) { - p = str; - for (i = 0; i < actual_len; ++i) - if (has_mbyte) - wca[i] = mb_ptr2char_adv(&p); - else - wca[i] = *(p++); - - /* Rule 1: Were any chars converted to lower? */ - p = compl_orig_text; - for (i = 0; i < min_len; ++i) { - if (has_mbyte) - c = mb_ptr2char_adv(&p); - else - c = *(p++); - if (vim_islower(c)) { - has_lower = TRUE; - if (vim_isupper(wca[i])) { - /* Rule 1 is satisfied. */ - for (i = actual_compl_length; i < actual_len; ++i) - wca[i] = vim_tolower(wca[i]); - break; - } - } - } + p = str; + for (i = 0; i < actual_len; ++i) + if (has_mbyte) + wca[i] = mb_ptr2char_adv(&p); + else + wca[i] = *(p++); - /* - * Rule 2: No lower case, 2nd consecutive letter converted to - * upper case. - */ - if (!has_lower) { - p = compl_orig_text; - for (i = 0; i < min_len; ++i) { - if (has_mbyte) - c = mb_ptr2char_adv(&p); - else - c = *(p++); - if (was_letter && vim_isupper(c) && vim_islower(wca[i])) { - /* Rule 2 is satisfied. */ - for (i = actual_compl_length; i < actual_len; ++i) - wca[i] = vim_toupper(wca[i]); - break; - } - was_letter = vim_islower(c) || vim_isupper(c); + /* Rule 1: Were any chars converted to lower? */ + p = compl_orig_text; + for (i = 0; i < min_len; ++i) { + if (has_mbyte) + c = mb_ptr2char_adv(&p); + else + c = *(p++); + if (vim_islower(c)) { + has_lower = TRUE; + if (vim_isupper(wca[i])) { + /* Rule 1 is satisfied. */ + for (i = actual_compl_length; i < actual_len; ++i) + wca[i] = vim_tolower(wca[i]); + break; } } + } - /* Copy the original case of the part we typed. */ + /* + * Rule 2: No lower case, 2nd consecutive letter converted to + * upper case. + */ + if (!has_lower) { p = compl_orig_text; for (i = 0; i < min_len; ++i) { if (has_mbyte) c = mb_ptr2char_adv(&p); else c = *(p++); - if (vim_islower(c)) - wca[i] = vim_tolower(wca[i]); - else if (vim_isupper(c)) - wca[i] = vim_toupper(wca[i]); + if (was_letter && vim_isupper(c) && vim_islower(wca[i])) { + /* Rule 2 is satisfied. */ + for (i = actual_compl_length; i < actual_len; ++i) + wca[i] = vim_toupper(wca[i]); + break; + } + was_letter = vim_islower(c) || vim_isupper(c); } + } - /* - * Generate encoding specific output from wide character array. - * Multi-byte characters can occupy up to five bytes more than - * ASCII characters, and we also need one byte for NUL, so stay - * six bytes away from the edge of IObuff. - */ - p = IObuff; - i = 0; - while (i < actual_len && (p - IObuff + 6) < IOSIZE) - if (has_mbyte) - p += (*mb_char2bytes)(wca[i++], p); - else - *(p++) = wca[i++]; - *p = NUL; - - vim_free(wca); + /* Copy the original case of the part we typed. */ + p = compl_orig_text; + for (i = 0; i < min_len; ++i) { + if (has_mbyte) + c = mb_ptr2char_adv(&p); + else + c = *(p++); + if (vim_islower(c)) + wca[i] = vim_tolower(wca[i]); + else if (vim_isupper(c)) + wca[i] = vim_toupper(wca[i]); } + /* + * Generate encoding specific output from wide character array. + * Multi-byte characters can occupy up to five bytes more than + * ASCII characters, and we also need one byte for NUL, so stay + * six bytes away from the edge of IObuff. + */ + p = IObuff; + i = 0; + while (i < actual_len && (p - IObuff + 6) < IOSIZE) + if (has_mbyte) + p += (*mb_char2bytes)(wca[i++], p); + else + *(p++) = wca[i++]; + *p = NUL; + + vim_free(wca); + return ins_compl_add(IObuff, len, icase, fname, NULL, dir, flags, FALSE); } @@ -2120,8 +2116,6 @@ ins_compl_add ( * Copy the values to the new match structure. */ match = (compl_T *)alloc_clear((unsigned)sizeof(compl_T)); - if (match == NULL) - return FAIL; match->cp_number = -1; if (flags & ORIGINAL_TEXT) match->cp_number = 0; @@ -2459,67 +2453,65 @@ void ins_compl_show_pum(void) compl_match_array = (pumitem_T *)alloc_clear( (unsigned)(sizeof(pumitem_T) * compl_match_arraysize)); - if (compl_match_array != NULL) { - /* If the current match is the original text don't find the first - * match after it, don't highlight anything. */ - if (compl_shown_match->cp_flags & ORIGINAL_TEXT) - shown_match_ok = TRUE; + /* If the current match is the original text don't find the first + * match after it, don't highlight anything. */ + if (compl_shown_match->cp_flags & ORIGINAL_TEXT) + shown_match_ok = TRUE; - i = 0; - compl = compl_first_match; - do { - if ((compl->cp_flags & ORIGINAL_TEXT) == 0 - && (compl_leader == NULL - || ins_compl_equal(compl, compl_leader, lead_len))) { - if (!shown_match_ok) { - if (compl == compl_shown_match || did_find_shown_match) { - /* This item is the shown match or this is the - * first displayed item after the shown match. */ - compl_shown_match = compl; - did_find_shown_match = TRUE; - shown_match_ok = TRUE; - } else - /* Remember this displayed match for when the - * shown match is just below it. */ - shown_compl = compl; - cur = i; - } - - if (compl->cp_text[CPT_ABBR] != NULL) - compl_match_array[i].pum_text = - compl->cp_text[CPT_ABBR]; - else - compl_match_array[i].pum_text = compl->cp_str; - compl_match_array[i].pum_kind = compl->cp_text[CPT_KIND]; - compl_match_array[i].pum_info = compl->cp_text[CPT_INFO]; - if (compl->cp_text[CPT_MENU] != NULL) - compl_match_array[i++].pum_extra = - compl->cp_text[CPT_MENU]; - else - compl_match_array[i++].pum_extra = compl->cp_fname; + i = 0; + compl = compl_first_match; + do { + if ((compl->cp_flags & ORIGINAL_TEXT) == 0 + && (compl_leader == NULL + || ins_compl_equal(compl, compl_leader, lead_len))) { + if (!shown_match_ok) { + if (compl == compl_shown_match || did_find_shown_match) { + /* This item is the shown match or this is the + * first displayed item after the shown match. */ + compl_shown_match = compl; + did_find_shown_match = TRUE; + shown_match_ok = TRUE; + } else + /* Remember this displayed match for when the + * shown match is just below it. */ + shown_compl = compl; + cur = i; } - if (compl == compl_shown_match) { - did_find_shown_match = TRUE; + if (compl->cp_text[CPT_ABBR] != NULL) + compl_match_array[i].pum_text = + compl->cp_text[CPT_ABBR]; + else + compl_match_array[i].pum_text = compl->cp_str; + compl_match_array[i].pum_kind = compl->cp_text[CPT_KIND]; + compl_match_array[i].pum_info = compl->cp_text[CPT_INFO]; + if (compl->cp_text[CPT_MENU] != NULL) + compl_match_array[i++].pum_extra = + compl->cp_text[CPT_MENU]; + else + compl_match_array[i++].pum_extra = compl->cp_fname; + } + + if (compl == compl_shown_match) { + did_find_shown_match = TRUE; - /* When the original text is the shown match don't set - * compl_shown_match. */ - if (compl->cp_flags & ORIGINAL_TEXT) - shown_match_ok = TRUE; + /* When the original text is the shown match don't set + * compl_shown_match. */ + if (compl->cp_flags & ORIGINAL_TEXT) + shown_match_ok = TRUE; - if (!shown_match_ok && shown_compl != NULL) { - /* The shown match isn't displayed, set it to the - * previously displayed match. */ - compl_shown_match = shown_compl; - shown_match_ok = TRUE; - } + if (!shown_match_ok && shown_compl != NULL) { + /* The shown match isn't displayed, set it to the + * previously displayed match. */ + compl_shown_match = shown_compl; + shown_match_ok = TRUE; } - compl = compl->cp_next; - } while (compl != NULL && compl != compl_first_match); + } + compl = compl->cp_next; + } while (compl != NULL && compl != compl_first_match); - if (!shown_match_ok) /* no displayed match at all */ - cur = -1; - } + if (!shown_match_ok) /* no displayed match at all */ + cur = -1; } else { /* popup menu already exists, only need to find the current item.*/ for (i = 0; i < compl_match_arraysize; ++i) @@ -2575,8 +2567,6 @@ ins_compl_dictionaries ( } buf = alloc(LSIZE); - if (buf == NULL) - return; regmatch.regprog = NULL; /* so that we can goto theend */ /* If 'infercase' is set, don't use 'smartcase' here */ @@ -2595,10 +2585,6 @@ ins_compl_dictionaries ( goto theend; len = STRLEN(pat_esc) + 10; ptr = alloc((unsigned)len); - if (ptr == NULL) { - vim_free(pat_esc); - goto theend; - } vim_snprintf((char *)ptr, len, "^\\s*\\zs\\V%s", pat_esc); regmatch.regprog = vim_regcomp(ptr, RE_MAGIC); vim_free(pat_esc); @@ -5885,16 +5871,14 @@ void set_last_insert(int c) vim_free(last_insert); last_insert = alloc(MB_MAXBYTES * 3 + 5); - if (last_insert != NULL) { - s = last_insert; - /* Use the CTRL-V only when entering a special char */ - if (c < ' ' || c == DEL) - *s++ = Ctrl_V; - s = add_char2buf(c, s); - *s++ = ESC; - *s++ = NUL; - last_insert_skip = 0; - } + s = last_insert; + /* Use the CTRL-V only when entering a special char */ + if (c < ' ' || c == DEL) + *s++ = Ctrl_V; + s = add_char2buf(c, s); + *s++ = ESC; + *s++ = NUL; + last_insert_skip = 0; } #if defined(EXITFREE) || defined(PROTO) @@ -6300,10 +6284,6 @@ replace_push ( if (replace_stack_len <= replace_stack_nr) { replace_stack_len += 50; p = lalloc(sizeof(char_u) * replace_stack_len, TRUE); - if (p == NULL) { /* out of memory */ - replace_stack_len -= 50; - return; - } if (replace_stack != NULL) { memmove(p, replace_stack, (size_t)(replace_stack_nr * sizeof(char_u))); diff --git a/src/file_search.c b/src/file_search.c index 28193b63c7..d4a3e35094 100644 --- a/src/file_search.c +++ b/src/file_search.c @@ -390,11 +390,7 @@ vim_findfile_init ( helper = walker; ptr = xrealloc(search_ctx->ffsc_stopdirs_v, (dircount + 1) * sizeof(char_u *)); - if (ptr) - search_ctx->ffsc_stopdirs_v = ptr; - else - /* ignore, keep what we have and continue */ - break; + search_ctx->ffsc_stopdirs_v = ptr; walker = vim_strchr(walker, ';'); if (walker) { search_ctx->ffsc_stopdirs_v[dircount-1] = @@ -789,9 +785,7 @@ char_u *vim_findfile(void *search_ctx_arg) if (path_with_url(dirptrs[0])) { stackp->ffs_filearray = (char_u **) alloc((unsigned)sizeof(char *)); - if (stackp->ffs_filearray != NULL - && (stackp->ffs_filearray[0] - = vim_strsave(dirptrs[0])) != NULL) + if ((stackp->ffs_filearray[0] = vim_strsave(dirptrs[0])) != NULL) stackp->ffs_filearray_size = 1; else stackp->ffs_filearray_size = 0; @@ -1136,10 +1130,6 @@ static int ff_wc_equal(char_u *s1, char_u *s2) * maintains the list of already visited files and dirs * returns FAIL if the given file/dir is already in the list * returns OK if it is newly added - * - * TODO: What to do on memory allocation problems? - * -> return TRUE - Better the file is found several times instead of - * never. */ static int ff_check_visited(ff_visited_T **visited_list, char_u *fname, char_u *wc_path) { @@ -1189,29 +1179,27 @@ static int ff_check_visited(ff_visited_T **visited_list, char_u *fname, char_u * vp = (ff_visited_T *)alloc((unsigned)(sizeof(ff_visited_T) + STRLEN(ff_expand_buffer))); - if (vp != NULL) { #ifdef UNIX - if (!url) { - vp->ffv_dev_valid = TRUE; - vp->ffv_ino = st.st_ino; - vp->ffv_dev = st.st_dev; - vp->ffv_fname[0] = NUL; - } else { - vp->ffv_dev_valid = FALSE; - STRCPY(vp->ffv_fname, ff_expand_buffer); - } -#else + if (!url) { + vp->ffv_dev_valid = TRUE; + vp->ffv_ino = st.st_ino; + vp->ffv_dev = st.st_dev; + vp->ffv_fname[0] = NUL; + } else { + vp->ffv_dev_valid = FALSE; STRCPY(vp->ffv_fname, ff_expand_buffer); + } +#else + STRCPY(vp->ffv_fname, ff_expand_buffer); #endif - if (wc_path != NULL) - vp->ffv_wc_path = vim_strsave(wc_path); - else - vp->ffv_wc_path = NULL; + if (wc_path != NULL) + vp->ffv_wc_path = vim_strsave(wc_path); + else + vp->ffv_wc_path = NULL; - vp->ffv_next = *visited_list; - *visited_list = vp; - } + vp->ffv_next = *visited_list; + *visited_list = vp; return OK; } @@ -1563,8 +1551,7 @@ find_file_in_path_option ( break; } - if ((buf = alloc((int)(MAXPATHL))) == NULL) - break; + buf = alloc((int)(MAXPATHL)); /* copy next path */ buf[0] = 0; diff --git a/src/fileio.c b/src/fileio.c index b13b7e5517..bf845c4fda 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -1010,12 +1010,7 @@ retry: for (; size >= 10; size = (long)((long_u)size >> 1)) { if ((new_buffer = lalloc((long_u)(size + linerest + 1), FALSE)) != NULL) - break; - } - if (new_buffer == NULL) { - do_outofmem_msg((long_u)(size * 2 + linerest + 1)); - error = TRUE; - break; + break; } if (linerest) /* copy characters from the previous buffer */ memmove(new_buffer, ptr - linerest, (size_t)linerest); @@ -2394,22 +2389,21 @@ char_u *prepare_crypt_write(buf_T *buf, int *lenp) header = alloc_clear(CRYPT_MAGIC_LEN + CRYPT_SALT_LEN_MAX + CRYPT_SEED_LEN_MAX + 2); - if (header != NULL) { - crypt_push_state(); - use_crypt_method = get_crypt_method(buf); /* select zip or blowfish */ - vim_strncpy(header, (char_u *)crypt_magic[use_crypt_method], - CRYPT_MAGIC_LEN); - if (use_crypt_method == 0) - crypt_init_keys(buf->b_p_key); - else { - /* Using blowfish, add salt and seed. */ - salt = header + CRYPT_MAGIC_LEN; - seed = salt + salt_len; - sha2_seed(salt, salt_len, seed, seed_len); - bf_key_init(buf->b_p_key, salt, salt_len); - bf_cfb_init(seed, seed_len); - } + crypt_push_state(); + use_crypt_method = get_crypt_method(buf); /* select zip or blowfish */ + vim_strncpy(header, (char_u *)crypt_magic[use_crypt_method], + CRYPT_MAGIC_LEN); + if (use_crypt_method == 0) + crypt_init_keys(buf->b_p_key); + else { + /* Using blowfish, add salt and seed. */ + salt = header + CRYPT_MAGIC_LEN; + seed = salt + salt_len; + sha2_seed(salt, salt_len, seed, seed_len); + bf_key_init(buf->b_p_key, salt, salt_len); + bf_cfb_init(seed, seed_len); } + *lenp = CRYPT_MAGIC_LEN + salt_len + seed_len; return header; } @@ -2789,9 +2783,12 @@ buf_write ( msg_scroll = FALSE; /* always overwrite the file message now */ buffer = alloc(BUFSIZE); - if (buffer == NULL) { /* can't allocate big buffer, use small - * one (to be able to write when out of - * memory) */ + // TODO: decide how to handle this now that alloc never returns NULL. The fact + // that the OOM handling code calls this should be considered. + // + // can't allocate big buffer, use small one (to be able to write when out of + // memory) + if (buffer == NULL) { buffer = smallbuf; bufsize = SMBUFSIZE; } else @@ -3029,10 +3026,6 @@ buf_write ( #endif copybuf = alloc(BUFSIZE + 1); - if (copybuf == NULL) { - some_error = TRUE; /* out of memory */ - goto nobackup; - } /* * Try to make the backup in each directory in the 'bdir' option. @@ -3400,8 +3393,6 @@ nobackup: write_info.bw_conv_buflen = bufsize * 4; write_info.bw_conv_buf = lalloc((long_u)write_info.bw_conv_buflen, TRUE); - if (write_info.bw_conv_buf == NULL) - end = 0; } } @@ -3420,8 +3411,6 @@ nobackup: write_info.bw_conv_buflen = bufsize * ICONV_MULT; write_info.bw_conv_buf = lalloc((long_u)write_info.bw_conv_buflen, TRUE); - if (write_info.bw_conv_buf == NULL) - end = 0; write_info.bw_first = TRUE; } else # endif @@ -5661,13 +5650,11 @@ static void vim_settempdir(char_u *tempdir) char_u *buf; buf = alloc((unsigned)MAXPATHL + 2); - if (buf != NULL) { - if (vim_FullName(tempdir, buf, MAXPATHL, FALSE) == FAIL) - STRCPY(buf, tempdir); - add_pathsep(buf); - vim_tempdir = vim_strsave(buf); - vim_free(buf); - } + if (vim_FullName(tempdir, buf, MAXPATHL, FALSE) == FAIL) + STRCPY(buf, tempdir); + add_pathsep(buf); + vim_tempdir = vim_strsave(buf); + vim_free(buf); } #endif @@ -7648,14 +7635,12 @@ auto_next_pat ( s = _("%s Auto commands for \"%s\""); sourcing_name = alloc((unsigned)(STRLEN(s) + STRLEN(name) + ap->patlen + 1)); - if (sourcing_name != NULL) { - sprintf((char *)sourcing_name, s, - (char *)name, (char *)ap->pat); - if (p_verbose >= 8) { - verbose_enter(); - smsg((char_u *)_("Executing %s"), sourcing_name); - verbose_leave(); - } + sprintf((char *)sourcing_name, s, + (char *)name, (char *)ap->pat); + if (p_verbose >= 8) { + verbose_enter(); + smsg((char_u *)_("Executing %s"), sourcing_name); + verbose_leave(); } apc->curpat = ap; @@ -8130,10 +8115,8 @@ file_pat_to_reg_pat ( if (p + 1 >= pat_end) { /* The 'pattern' is a filetype check ONLY */ reg_pat = (char_u *)alloc(check_length + 1); - if (reg_pat != NULL) { - memmove(reg_pat, pat, (size_t)check_length); - reg_pat[check_length] = NUL; - } + memmove(reg_pat, pat, (size_t)check_length); + reg_pat[check_length] = NUL; return reg_pat; } } diff --git a/src/fold.c b/src/fold.c index fecb2e376c..8af2b891f4 100644 --- a/src/fold.c +++ b/src/fold.c @@ -1606,8 +1606,6 @@ static void foldAddMarker(linenr_T lnum, char_u *marker, int markerlen) if (u_save(lnum - 1, lnum + 1) == OK) { newline = alloc((unsigned)(line_len + markerlen + STRLEN(cms) + 1)); - if (newline == NULL) - return; STRCPY(newline, line); if (p == NULL) vim_strncpy(newline + line_len, marker, markerlen); @@ -1679,11 +1677,9 @@ static void foldDelMarker(linenr_T lnum, char_u *marker, int markerlen) if (u_save(lnum - 1, lnum + 1) == OK) { /* Make new line: text-before-marker + text-after-marker */ newline = alloc((unsigned)(STRLEN(line) - len + 1)); - if (newline != NULL) { - STRNCPY(newline, line, p - line); - STRCPY(newline + (p - line), p + len); - ml_replace(lnum, newline, FALSE); - } + STRNCPY(newline, line, p - line); + STRCPY(newline + (p - line), p + len); + ml_replace(lnum, newline, FALSE); } break; } diff --git a/src/garray.c b/src/garray.c index 1c79274fc8..7dee7203cc 100644 --- a/src/garray.c +++ b/src/garray.c @@ -121,16 +121,14 @@ char_u* ga_concat_strings(garray_T *gap) s = alloc(len + 1); - if (s != NULL) { - *s = NUL; - - for (i = 0; i < gap->ga_len; ++i) { - if (*s != NUL) { - STRCAT(s, ","); - } - STRCAT(s, ((char_u **)(gap->ga_data))[i]); + *s = NUL; + for (i = 0; i < gap->ga_len; ++i) { + if (*s != NUL) { + STRCAT(s, ","); } + STRCAT(s, ((char_u **)(gap->ga_data))[i]); } + return s; } diff --git a/src/getchar.c b/src/getchar.c index 62110d90d2..19892b6980 100644 --- a/src/getchar.c +++ b/src/getchar.c @@ -197,7 +197,8 @@ static char_u *get_buffcont(buffheader_T *buffer, for (bp = buffer->bh_first.b_next; bp != NULL; bp = bp->b_next) count += (long_u)STRLEN(bp->b_str); - if ((count || dozero) && (p = lalloc(count + 1, TRUE)) != NULL) { + if (count || dozero) { + p = lalloc(count + 1, TRUE); p2 = p; for (bp = buffer->bh_first.b_next; bp != NULL; bp = bp->b_next) for (str = bp->b_str; *str; ) @@ -290,8 +291,6 @@ add_buff ( else len = slen; p = (buffblock_T *)lalloc((long_u)(sizeof(buffblock_T) + len), TRUE); - if (p == NULL) - return; /* no space, just forget it */ buf->bh_space = (int)(len - slen); vim_strncpy(p->b_str, s, (size_t)slen); @@ -3827,30 +3826,29 @@ char_u *vim_strsave_escape_csi(char_u *p) /* Need a buffer to hold up to three times as much. */ res = alloc((unsigned)(STRLEN(p) * 3) + 1); - if (res != NULL) { - d = res; - for (s = p; *s != NUL; ) { - if (s[0] == K_SPECIAL && s[1] != NUL && s[2] != NUL) { - /* Copy special key unmodified. */ - *d++ = *s++; - *d++ = *s++; - *d++ = *s++; - } else { - int len = mb_char2len(PTR2CHAR(s)); - int len2 = mb_ptr2len(s); - /* Add character, possibly multi-byte to destination, escaping - * CSI and K_SPECIAL. */ - d = add_char2buf(PTR2CHAR(s), d); - while (len < len2) { - /* add following combining char */ - d = add_char2buf(PTR2CHAR(s + len), d); - len += mb_char2len(PTR2CHAR(s + len)); - } - mb_ptr_adv(s); + d = res; + for (s = p; *s != NUL; ) { + if (s[0] == K_SPECIAL && s[1] != NUL && s[2] != NUL) { + /* Copy special key unmodified. */ + *d++ = *s++; + *d++ = *s++; + *d++ = *s++; + } else { + int len = mb_char2len(PTR2CHAR(s)); + int len2 = mb_ptr2len(s); + /* Add character, possibly multi-byte to destination, escaping + * CSI and K_SPECIAL. */ + d = add_char2buf(PTR2CHAR(s), d); + while (len < len2) { + /* add following combining char */ + d = add_char2buf(PTR2CHAR(s + len), d); + len += mb_char2len(PTR2CHAR(s + len)); } + mb_ptr_adv(s); } - *d = NUL; } + *d = NUL; + return res; } diff --git a/src/hardcopy.c b/src/hardcopy.c index f8a9a5b496..0d3715a8a7 100644 --- a/src/hardcopy.c +++ b/src/hardcopy.c @@ -441,8 +441,6 @@ static void prt_header(prt_settings_T *psettings, int pagenum, linenr_T lnum) width += PRINT_NUMBER_WIDTH; tbuf = alloc(width + IOSIZE); - if (tbuf == NULL) - return; if (*p_header != NUL) { linenr_T tmp_lnum, tmp_topline, tmp_botline; @@ -2526,10 +2524,6 @@ int mch_print_begin(prt_settings_T *psettings) alloc(sizeof(struct prt_ps_resource_S)); res_cmap = (struct prt_ps_resource_S *) alloc(sizeof(struct prt_ps_resource_S)); - if (res_prolog == NULL || res_encoding == NULL - || res_cidfont == NULL || res_cmap == NULL - ) - goto theend; /* * PS DSC Header comments - no PS code! @@ -2863,7 +2857,6 @@ int mch_print_begin(prt_settings_T *psettings) /* Fail if any problems writing out to the PS file */ retval = !prt_file_error; -theend: vim_free(res_prolog); vim_free(res_encoding); vim_free(res_cidfont); diff --git a/src/if_cscope.c b/src/if_cscope.c index d1f709010c..e257e4e84b 100644 --- a/src/if_cscope.c +++ b/src/if_cscope.c @@ -461,12 +461,9 @@ static void cs_stat_emsg(char *fname) char *stat_emsg = _("E563: stat(%s) error: %d"); char *buf = (char *)alloc((unsigned)strlen(stat_emsg) + MAXPATHL + 10); - if (buf != NULL) { - (void)sprintf(buf, stat_emsg, fname, errno); - (void)EMSG(buf); - vim_free(buf); - } else - (void)EMSG(_("E563: stat error")); + (void)sprintf(buf, stat_emsg, fname, errno); + (void)EMSG(buf); + vim_free(buf); } @@ -495,8 +492,7 @@ cs_add_common ( char_u *fbuf = NULL; /* get the filename (arg1), expand it, and try to stat it */ - if ((fname = (char *)alloc(MAXPATHL + 1)) == NULL) - goto add_err; + fname = (char *)alloc(MAXPATHL + 1); expand_env((char_u *)arg1, (char_u *)fname, MAXPATHL); len = (int)STRLEN(fname); @@ -519,8 +515,7 @@ staterr: if (arg2 != NULL) { struct stat statbuf2; - if ((ppath = (char *)alloc(MAXPATHL + 1)) == NULL) - goto add_err; + ppath = (char *)alloc(MAXPATHL + 1); expand_env((char_u *)arg2, (char_u *)ppath, MAXPATHL); ret = stat(ppath, &statbuf2); @@ -531,8 +526,6 @@ staterr: /* if filename is a directory, append the cscope database name to it */ if ((statbuf.st_mode & S_IFMT) == S_IFDIR) { fname2 = (char *)alloc((unsigned)(strlen(CSCOPE_DBFILE) + strlen(fname) + 2)); - if (fname2 == NULL) - goto add_err; while (fname[strlen(fname)-1] == '/' ) { @@ -646,8 +639,6 @@ static int cs_cnt_matches(int idx) int nlines; buf = (char *)alloc(CSREAD_BUFSIZE); - if (buf == NULL) - return 0; for (;; ) { if (!fgets(buf, CSREAD_BUFSIZE, csinfo[idx].fr_fp)) { if (feof(csinfo[idx].fr_fp)) @@ -740,8 +731,7 @@ static char *cs_create_cmd(char *csoption, char *pattern) while (vim_iswhite(*pat)) ++pat; - if ((cmd = (char *)alloc((unsigned)(strlen(pat) + 2))) == NULL) - return NULL; + cmd = (char *)alloc((unsigned)(strlen(pat) + 2)); (void)sprintf(cmd, "%d%s", search, pat); @@ -821,29 +811,14 @@ err_closing: } #endif /* expand the cscope exec for env var's */ - if ((prog = (char *)alloc(MAXPATHL + 1)) == NULL) { -#ifdef UNIX - return CSCOPE_FAILURE; -#else - /* WIN32 */ - goto err_closing; -#endif - } + prog = (char *)alloc(MAXPATHL + 1); expand_env((char_u *)p_csprg, (char_u *)prog, MAXPATHL); /* alloc space to hold the cscope command */ len = (int)(strlen(prog) + strlen(csinfo[i].fname) + 32); if (csinfo[i].ppath) { /* expand the prepend path for env var's */ - if ((ppath = (char *)alloc(MAXPATHL + 1)) == NULL) { - vim_free(prog); -#ifdef UNIX - return CSCOPE_FAILURE; -#else - /* WIN32 */ - goto err_closing; -#endif - } + ppath = (char *)alloc(MAXPATHL + 1); expand_env((char_u *)csinfo[i].ppath, (char_u *)ppath, MAXPATHL); len += (int)strlen(ppath); @@ -852,16 +827,7 @@ err_closing: if (csinfo[i].flags) len += (int)strlen(csinfo[i].flags); - if ((cmd = (char *)alloc(len)) == NULL) { - vim_free(prog); - vim_free(ppath); -#ifdef UNIX - return CSCOPE_FAILURE; -#else - /* WIN32 */ - goto err_closing; -#endif - } + cmd = (char *)alloc(len); /* run the cscope command; is there execl for non-unix systems? */ #if defined(UNIX) @@ -1052,14 +1018,12 @@ static int cs_find_common(char *opt, char *pat, int forceit, int verbose, int us /* next symbol must be + or - */ if (strchr(CSQF_FLAGS, *qfpos) == NULL) { char *nf = _("E469: invalid cscopequickfix flag %c for %c"); + /* strlen will be enough because we use chars */ char *buf = (char *)alloc((unsigned)strlen(nf)); - /* strlen will be enough because we use chars */ - if (buf != NULL) { - sprintf(buf, nf, *qfpos, *(qfpos-1)); - (void)EMSG(buf); - vim_free(buf); - } + sprintf(buf, nf, *qfpos, *(qfpos-1)); + (void)EMSG(buf); + vim_free(buf); return FALSE; } @@ -1077,8 +1041,6 @@ static int cs_find_common(char *opt, char *pat, int forceit, int verbose, int us return FALSE; nummatches = (int *)alloc(sizeof(int)*csinfo_size); - if (nummatches == NULL) - return FALSE; /* Send query to all open connections, then count the total number * of matches so we can alloc all in one swell foop. */ @@ -1113,13 +1075,9 @@ static int cs_find_common(char *opt, char *pat, int forceit, int verbose, int us } buf = (char *)alloc((unsigned)(strlen(opt) + strlen(pat) + strlen(nf))); - if (buf == NULL) - (void)EMSG(nf); - else { - sprintf(buf, nf, opt, pat); - (void)EMSG(buf); - vim_free(buf); - } + sprintf(buf, nf, opt, pat); + (void)EMSG(buf); + vim_free(buf); vim_free(nummatches); return FALSE; } @@ -1334,37 +1292,22 @@ static int cs_insert_filelist(char *fname, char *ppath, char *flags, struct stat csinfo_size *= 2; csinfo = xrealloc(csinfo, sizeof(csinfo_T)*csinfo_size); } - if (csinfo == NULL) - return -1; for (j = csinfo_size/2; j < csinfo_size; j++) clear_csinfo(j); } - if ((csinfo[i].fname = (char *)alloc((unsigned)strlen(fname)+1)) == NULL) - return -1; + csinfo[i].fname = (char *)alloc((unsigned)strlen(fname)+1); (void)strcpy(csinfo[i].fname, (const char *)fname); if (ppath != NULL) { - if ((csinfo[i].ppath = (char *)alloc((unsigned)strlen(ppath) + 1)) == - NULL) { - vim_free(csinfo[i].fname); - csinfo[i].fname = NULL; - return -1; - } + csinfo[i].ppath = (char *)alloc((unsigned)strlen(ppath) + 1); (void)strcpy(csinfo[i].ppath, (const char *)ppath); } else csinfo[i].ppath = NULL; if (flags != NULL) { - if ((csinfo[i].flags = (char *)alloc((unsigned)strlen(flags) + 1)) == - NULL) { - vim_free(csinfo[i].fname); - vim_free(csinfo[i].ppath); - csinfo[i].fname = NULL; - csinfo[i].ppath = NULL; - return -1; - } + csinfo[i].flags = (char *)alloc((unsigned)strlen(flags) + 1); (void)strcpy(csinfo[i].flags, (const char *)flags); } else csinfo[i].flags = NULL; @@ -1674,8 +1617,6 @@ static void cs_file_results(FILE *f, int *nummatches_a) char *context; buf = (char *)alloc(CSREAD_BUFSIZE); - if (buf == NULL) - return; for (i = 0; i < csinfo_size; i++) { if (nummatches_a[i] < 1) @@ -1687,8 +1628,6 @@ static void cs_file_results(FILE *f, int *nummatches_a) continue; context = (char *)alloc((unsigned)strlen(cntx)+5); - if (context == NULL) - continue; if (strcmp(cntx, "<global>")==0) strcpy(context, "<<global>>"); @@ -1731,13 +1670,9 @@ static void cs_fill_results(char *tagstr, int totmatches, int *nummatches_a, cha assert(totmatches > 0); buf = (char *)alloc(CSREAD_BUFSIZE); - if (buf == NULL) - return; - if ((matches = (char **)alloc(sizeof(char *) * totmatches)) == NULL) - goto parse_out; - if ((cntxts = (char **)alloc(sizeof(char *) * totmatches)) == NULL) - goto parse_out; + matches = (char **)alloc(sizeof(char *) * totmatches); + cntxts = (char **)alloc(sizeof(char *) * totmatches); for (i = 0; i < csinfo_size; i++) { if (nummatches_a[i] < 1) @@ -1770,7 +1705,6 @@ static void cs_fill_results(char *tagstr, int totmatches, int *nummatches_a, cha } /* for all cscope connections */ -parse_out: if (totsofar == 0) { /* No matches, free the arrays and return NULL in "*matches_p". */ vim_free(matches); @@ -1827,19 +1761,16 @@ static void cs_print_tags_priv(char **matches, char **cntxts, int num_matches) assert (num_matches > 0); - if ((tbuf = (char *)alloc((unsigned)strlen(matches[0]) + 1)) == NULL) - return; + tbuf = (char *)alloc((unsigned)strlen(matches[0]) + 1); strcpy(tbuf, matches[0]); ptag = strtok(tbuf, "\t"); newsize = (int)(strlen(cstag_msg) + strlen(ptag)); buf = (char *)alloc(newsize); - if (buf != NULL) { - bufsize = newsize; - (void)sprintf(buf, cstag_msg, ptag); - MSG_PUTS_ATTR(buf, hl_attr(HLF_T)); - } + bufsize = newsize; + (void)sprintf(buf, cstag_msg, ptag); + MSG_PUTS_ATTR(buf, hl_attr(HLF_T)); vim_free(tbuf); @@ -1855,8 +1786,7 @@ static void cs_print_tags_priv(char **matches, char **cntxts, int num_matches) * by parsing matches[i] on the fly and placing stuff into buf * directly, but that's too much of a hassle */ - if ((tbuf = (char *)alloc((unsigned)strlen(matches[idx]) + 1)) == NULL) - continue; + tbuf = (char *)alloc((unsigned)strlen(matches[idx]) + 1); (void)strcpy(tbuf, matches[idx]); if (strtok(tbuf, (const char *)"\t") == NULL) @@ -1873,10 +1803,7 @@ static void cs_print_tags_priv(char **matches, char **cntxts, int num_matches) newsize = (int)(strlen(csfmt_str) + 16 + strlen(lno)); if (bufsize < newsize) { buf = (char *)xrealloc(buf, newsize); - if (buf == NULL) - bufsize = 0; - else - bufsize = newsize; + bufsize = newsize; } if (buf != NULL) { /* csfmt_str = "%4d %6s "; */ @@ -1894,10 +1821,7 @@ static void cs_print_tags_priv(char **matches, char **cntxts, int num_matches) if (bufsize < newsize) { buf = (char *)xrealloc(buf, newsize); - if (buf == NULL) - bufsize = 0; - else - bufsize = newsize; + bufsize = newsize; } if (buf != NULL) { (void)sprintf(buf, cntxformat, context); @@ -2159,12 +2083,6 @@ static int cs_reset(exarg_T *eap) dblist = (char **)alloc(csinfo_size * sizeof(char *)); pplist = (char **)alloc(csinfo_size * sizeof(char *)); fllist = (char **)alloc(csinfo_size * sizeof(char *)); - if (dblist == NULL || pplist == NULL || fllist == NULL) { - vim_free(dblist); - vim_free(pplist); - vim_free(fllist); - return CSCOPE_FAILURE; - } for (i = 0; i < csinfo_size; i++) { dblist[i] = csinfo[i].fname; @@ -2230,12 +2148,10 @@ static char *cs_resolve_file(int i, char *name) /* If 'cscoperelative' is set and ppath is not set, use cscope.out * path in path resolution. */ csdir = alloc(MAXPATHL); - if (csdir != NULL) { - vim_strncpy(csdir, (char_u *)csinfo[i].fname, - path_tail((char_u *)csinfo[i].fname) - - (char_u *)csinfo[i].fname); - len += (int)STRLEN(csdir); - } + vim_strncpy(csdir, (char_u *)csinfo[i].fname, + path_tail((char_u *)csinfo[i].fname) + - (char_u *)csinfo[i].fname); + len += (int)STRLEN(csdir); } /* Note/example: this won't work if the cscope output already starts @@ -2245,8 +2161,8 @@ static char *cs_resolve_file(int i, char *name) && (strncmp(name, csinfo[i].ppath, strlen(csinfo[i].ppath)) != 0) && (name[0] != '/') ) { - if ((fullname = (char *)alloc(len)) != NULL) - (void)sprintf(fullname, "%s/%s", csinfo[i].ppath, name); + fullname = (char *)alloc(len); + (void)sprintf(fullname, "%s/%s", csinfo[i].ppath, name); } else if (csdir != NULL && csinfo[i].fname != NULL && *csdir != NUL) { /* Check for csdir to be non empty to avoid empty path concatenated to * cscope output. */ diff --git a/src/indent.c b/src/indent.c index 29fe3fbdb4..7cfadc5d63 100644 --- a/src/indent.c +++ b/src/indent.c @@ -182,10 +182,6 @@ int set_indent(int size, int flags) // after the if (!curbuf->b_p_et) below. if (orig_char_len != -1) { newline = alloc(orig_char_len + size - ind_done + line_len); - - if (newline == NULL) { - return FALSE; - } todo = size - ind_done; // Set total length of indent in characters, which may have been @@ -207,10 +203,6 @@ int set_indent(int size, int flags) } else { todo = size; newline = alloc(ind_len + line_len); - - if (newline == NULL) { - return FALSE; - } s = newline; } @@ -376,10 +368,6 @@ int copy_indent(int size, char_u *src) // and the rest of the line. line_len = (int)STRLEN(ml_get_curline()) + 1; line = alloc(ind_len + line_len); - - if (line == NULL) { - return FALSE; - } p = line; } } diff --git a/src/indent_c.c b/src/indent_c.c index 10e463860a..08b28c73f2 100644 --- a/src/indent_c.c +++ b/src/indent_c.c @@ -122,18 +122,17 @@ int cin_is_cinword(char_u *line) cinw_len = (int)STRLEN(curbuf->b_p_cinw) + 1; cinw_buf = alloc((unsigned)cinw_len); - if (cinw_buf != NULL) { - line = skipwhite(line); - for (cinw = curbuf->b_p_cinw; *cinw; ) { - len = copy_option_part(&cinw, cinw_buf, cinw_len, ","); - if (STRNCMP(line, cinw_buf, len) == 0 - && (!vim_iswordc(line[len]) || !vim_iswordc(line[len - 1]))) { - retval = TRUE; - break; - } + line = skipwhite(line); + for (cinw = curbuf->b_p_cinw; *cinw; ) { + len = copy_option_part(&cinw, cinw_buf, cinw_len, ","); + if (STRNCMP(line, cinw_buf, len) == 0 + && (!vim_iswordc(line[len]) || !vim_iswordc(line[len - 1]))) { + retval = TRUE; + break; } - vim_free(cinw_buf); } + vim_free(cinw_buf); + return retval; } diff --git a/src/main.c b/src/main.c index 6fd39fee14..9f751416f2 100644 --- a/src/main.c +++ b/src/main.c @@ -1318,8 +1318,6 @@ static void command_line_scan(mparm_T *parmp) } else a = argv[0]; p = alloc((unsigned)(STRLEN(a) + 4)); - if (p == NULL) - mch_exit(2); sprintf((char *)p, "so %s", a); parmp->cmds_tofree[parmp->n_commands] = TRUE; parmp->commands[parmp->n_commands++] = p; @@ -1473,11 +1471,9 @@ scripterror: * one. */ if (parmp->n_commands > 0) { p = alloc((unsigned)STRLEN(parmp->commands[0]) + 3); - if (p != NULL) { - sprintf((char *)p, ":%s\r", parmp->commands[0]); - set_vim_var_string(VV_SWAPCOMMAND, p, -1); - vim_free(p); - } + sprintf((char *)p, ":%s\r", parmp->commands[0]); + set_vim_var_string(VV_SWAPCOMMAND, p, -1); + vim_free(p); } TIME_MSG("parsing arguments"); } @@ -1520,9 +1516,8 @@ static void init_startuptime(mparm_T *paramp) */ static void allocate_generic_buffers(void) { - if ((IObuff = alloc(IOSIZE)) == NULL - || (NameBuff = alloc(MAXPATHL)) == NULL) - mch_exit(0); + IObuff = alloc(IOSIZE); + NameBuff = alloc(MAXPATHL); TIME_MSG("Allocated generic buffers"); } diff --git a/src/mark.c b/src/mark.c index f133c1b3fa..72336d1365 100644 --- a/src/mark.c +++ b/src/mark.c @@ -1417,8 +1417,7 @@ void copy_viminfo_marks(vir_T *virp, FILE *fp_out, int count, int eof, int flags pos_T pos; list_T *list = NULL; - if ((name_buf = alloc(LSIZE)) == NULL) - return; + name_buf = alloc(LSIZE); *name_buf = NUL; if (fp_out == NULL && (flags & (VIF_GET_OLDFILES | VIF_FORCEIT))) { diff --git a/src/mbyte.c b/src/mbyte.c index fff953ebfc..756254076a 100644 --- a/src/mbyte.c +++ b/src/mbyte.c @@ -3334,49 +3334,47 @@ char_u * enc_canonize(char_u *enc) /* copy "enc" to allocated memory, with room for two '-' */ r = alloc((unsigned)(STRLEN(enc) + 3)); - if (r != NULL) { - /* Make it all lower case and replace '_' with '-'. */ - p = r; - for (s = enc; *s != NUL; ++s) { - if (*s == '_') - *p++ = '-'; - else - *p++ = TOLOWER_ASC(*s); - } - *p = NUL; + /* Make it all lower case and replace '_' with '-'. */ + p = r; + for (s = enc; *s != NUL; ++s) { + if (*s == '_') + *p++ = '-'; + else + *p++ = TOLOWER_ASC(*s); + } + *p = NUL; - /* Skip "2byte-" and "8bit-". */ - p = enc_skip(r); + /* Skip "2byte-" and "8bit-". */ + p = enc_skip(r); - /* Change "microsoft-cp" to "cp". Used in some spell files. */ - if (STRNCMP(p, "microsoft-cp", 12) == 0) - STRMOVE(p, p + 10); + /* Change "microsoft-cp" to "cp". Used in some spell files. */ + if (STRNCMP(p, "microsoft-cp", 12) == 0) + STRMOVE(p, p + 10); - /* "iso8859" -> "iso-8859" */ - if (STRNCMP(p, "iso8859", 7) == 0) { - STRMOVE(p + 4, p + 3); - p[3] = '-'; - } + /* "iso8859" -> "iso-8859" */ + if (STRNCMP(p, "iso8859", 7) == 0) { + STRMOVE(p + 4, p + 3); + p[3] = '-'; + } - /* "iso-8859n" -> "iso-8859-n" */ - if (STRNCMP(p, "iso-8859", 8) == 0 && p[8] != '-') { - STRMOVE(p + 9, p + 8); - p[8] = '-'; - } + /* "iso-8859n" -> "iso-8859-n" */ + if (STRNCMP(p, "iso-8859", 8) == 0 && p[8] != '-') { + STRMOVE(p + 9, p + 8); + p[8] = '-'; + } - /* "latin-N" -> "latinN" */ - if (STRNCMP(p, "latin-", 6) == 0) - STRMOVE(p + 5, p + 6); - - if (enc_canon_search(p) >= 0) { - /* canonical name can be used unmodified */ - if (p != r) - STRMOVE(r, p); - } else if ((i = enc_alias_search(p)) >= 0) { - /* alias recognized, get canonical name */ - vim_free(r); - r = vim_strsave((char_u *)enc_canon_table[i].name); - } + /* "latin-N" -> "latinN" */ + if (STRNCMP(p, "latin-", 6) == 0) + STRMOVE(p + 5, p + 6); + + if (enc_canon_search(p) >= 0) { + /* canonical name can be used unmodified */ + if (p != r) + STRMOVE(r, p); + } else if ((i = enc_alias_search(p)) >= 0) { + /* alias recognized, get canonical name */ + vim_free(r); + r = vim_strsave((char_u *)enc_canon_table[i].name); } return r; } @@ -3537,7 +3535,7 @@ static char_u * iconv_string(vimconv_T *vcp, char_u *str, int slen, int *unconvl * increase the buffer size. */ len = len + fromlen * 2 + 40; p = alloc((unsigned)len); - if (p != NULL && done > 0) + if (done > 0) memmove(p, result, done); vim_free(result); result = p; @@ -3856,8 +3854,7 @@ int convert_input_safe(ptr, len, maxlen, restp, restlenp) if (unconvertlen > 0) { /* Move the unconverted characters to allocated memory. */ *restp = alloc(unconvertlen); - if (*restp != NULL) - memmove(*restp, ptr + len - unconvertlen, unconvertlen); + memmove(*restp, ptr + len - unconvertlen, unconvertlen); *restlenp = unconvertlen; } memmove(ptr, d, dlen); @@ -3913,8 +3910,6 @@ char_u * string_convert_ext(vcp, ptr, lenp, unconvlenp) switch (vcp->vc_type) { case CONV_TO_UTF8: /* latin1 to utf-8 conversion */ retval = alloc(len * 2 + 1); - if (retval == NULL) - break; d = retval; for (i = 0; i < len; ++i) { c = ptr[i]; @@ -3932,8 +3927,6 @@ char_u * string_convert_ext(vcp, ptr, lenp, unconvlenp) case CONV_9_TO_UTF8: /* latin9 to utf-8 conversion */ retval = alloc(len * 3 + 1); - if (retval == NULL) - break; d = retval; for (i = 0; i < len; ++i) { c = ptr[i]; @@ -3957,8 +3950,6 @@ char_u * string_convert_ext(vcp, ptr, lenp, unconvlenp) case CONV_TO_LATIN1: /* utf-8 to latin1 conversion */ case CONV_TO_LATIN9: /* utf-8 to latin9 conversion */ retval = alloc(len + 1); - if (retval == NULL) - break; d = retval; for (i = 0; i < len; ++i) { l = utf_ptr2len_len(ptr + i, len - i); diff --git a/src/memline.c b/src/memline.c index 05bc24e277..8d3dc47d7b 100644 --- a/src/memline.c +++ b/src/memline.c @@ -1015,8 +1015,6 @@ void ml_recover(void) * Only the memline and crypt information in it are really used. */ buf = (buf_T *)alloc((unsigned)sizeof(buf_T)); - if (buf == NULL) - goto theend; /* * init fields in memline struct @@ -1127,8 +1125,6 @@ void ml_recover(void) /* need to reallocate the memory used to store the data */ p = alloc(mfp->mf_page_size); - if (p == NULL) - goto theend; memmove(p, hp->bh_data, previous_page_size); vim_free(hp->bh_data); hp->bh_data = p; @@ -1627,11 +1623,9 @@ recover_names ( if (swapname != NULL) { if (mch_stat((char *)swapname, &st) != -1) { /* It exists! */ files = (char_u **)alloc((unsigned)sizeof(char_u *)); - if (files != NULL) { - files[0] = swapname; - swapname = NULL; - num_files = 1; - } + files[0] = swapname; + swapname = NULL; + num_files = 1; } vim_free(swapname); } @@ -1711,14 +1705,12 @@ static char_u *make_percent_swname(char_u *dir, char_u *name) d = NULL; if (f != NULL) { s = alloc((unsigned)(STRLEN(f) + 1)); - if (s != NULL) { - STRCPY(s, f); - for (d = s; *d != NUL; mb_ptr_adv(d)) - if (vim_ispathsep(*d)) - *d = '%'; - d = concat_fnames(dir, s, TRUE); - vim_free(s); - } + STRCPY(s, f); + for (d = s; *d != NUL; mb_ptr_adv(d)) + if (vim_ispathsep(*d)) + *d = '%'; + d = concat_fnames(dir, s, TRUE); + vim_free(s); vim_free(f); } return d; @@ -3652,10 +3644,7 @@ findswapname ( * First allocate some memory to put the directory name in. */ dir_name = alloc((unsigned)STRLEN(*dirp) + 1); - if (dir_name == NULL) - *dirp = NULL; - else - (void)copy_option_part(dirp, dir_name, 31000, ","); + (void)copy_option_part(dirp, dir_name, 31000, ","); /* * we try different names until we find one that does not exist yet @@ -3698,61 +3687,59 @@ findswapname ( || STRLEN(tail) > (size_t)8 || *path_tail(fname) == '.') { fname2 = alloc(n + 2); - if (fname2 != NULL) { - STRCPY(fname2, fname); - /* if fname == "xx.xx.swp", fname2 = "xx.xx.swx" - * if fname == ".xx.swp", fname2 = ".xx.swpx" - * if fname == "123456789.swp", fname2 = "12345678x.swp" - */ - if (vim_strchr(tail, '.') != NULL) - fname2[n - 1] = 'x'; - else if (*path_tail(fname) == '.') { - fname2[n] = 'x'; - fname2[n + 1] = NUL; - } else - fname2[n - 5] += 1; - /* - * may need to create the files to be able to use mch_stat() - */ - f1 = mch_open((char *)fname, O_RDONLY | O_EXTRA, 0); - if (f1 < 0) { - f1 = mch_open_rw((char *)fname, + STRCPY(fname2, fname); + /* if fname == "xx.xx.swp", fname2 = "xx.xx.swx" + * if fname == ".xx.swp", fname2 = ".xx.swpx" + * if fname == "123456789.swp", fname2 = "12345678x.swp" + */ + if (vim_strchr(tail, '.') != NULL) + fname2[n - 1] = 'x'; + else if (*path_tail(fname) == '.') { + fname2[n] = 'x'; + fname2[n + 1] = NUL; + } else + fname2[n - 5] += 1; + /* + * may need to create the files to be able to use mch_stat() + */ + f1 = mch_open((char *)fname, O_RDONLY | O_EXTRA, 0); + if (f1 < 0) { + f1 = mch_open_rw((char *)fname, + O_RDWR|O_CREAT|O_EXCL|O_EXTRA); + created1 = TRUE; + } + if (f1 >= 0) { + f2 = mch_open((char *)fname2, O_RDONLY | O_EXTRA, 0); + if (f2 < 0) { + f2 = mch_open_rw((char *)fname2, O_RDWR|O_CREAT|O_EXCL|O_EXTRA); - created1 = TRUE; + created2 = TRUE; } - if (f1 >= 0) { - f2 = mch_open((char *)fname2, O_RDONLY | O_EXTRA, 0); - if (f2 < 0) { - f2 = mch_open_rw((char *)fname2, - O_RDWR|O_CREAT|O_EXCL|O_EXTRA); - created2 = TRUE; - } - if (f2 >= 0) { - /* - * Both files exist now. If mch_stat() returns the - * same device and inode they are the same file. - */ - if (mch_fstat(f1, &s1) != -1 - && mch_fstat(f2, &s2) != -1 - && s1.st_dev == s2.st_dev - && s1.st_ino == s2.st_ino) - same = TRUE; - close(f2); - if (created2) - mch_remove(fname2); - } - close(f1); - if (created1) - mch_remove(fname); - } - vim_free(fname2); - if (same) { - buf->b_shortname = TRUE; - vim_free(fname); - fname = makeswapname(buf_fname, buf->b_ffname, - buf, dir_name); - continue; /* try again with b_shortname set */ + if (f2 >= 0) { + /* + * Both files exist now. If mch_stat() returns the + * same device and inode they are the same file. + */ + if (mch_fstat(f1, &s1) != -1 + && mch_fstat(f2, &s2) != -1 + && s1.st_dev == s2.st_dev + && s1.st_ino == s2.st_ino) + same = TRUE; + close(f2); + if (created2) + mch_remove(fname2); } + close(f1); + if (created1) + mch_remove(fname); + } + vim_free(fname2); + if (same) { + buf->b_shortname = TRUE; + vim_free(fname); + fname = makeswapname(buf_fname, buf->b_ffname, + buf, dir_name); + continue; /* try again with b_shortname set */ } } } @@ -3913,12 +3900,10 @@ findswapname ( name = alloc((unsigned)(STRLEN(fname) + STRLEN(_("Swap file \"")) + STRLEN(_("\" already exists!")) + 5)); - if (name != NULL) { - STRCPY(name, _("Swap file \"")); - home_replace(NULL, fname, name + STRLEN(name), - 1000, TRUE); - STRCAT(name, _("\" already exists!")); - } + STRCPY(name, _("Swap file \"")); + home_replace(NULL, fname, name + STRLEN(name), + 1000, TRUE); + STRCAT(name, _("\" already exists!")); choice = do_dialog(VIM_WARNING, (char_u *)_("VIM - ATTENTION"), name == NULL @@ -4370,11 +4355,6 @@ static void ml_updatechunk(buf_T *buf, linenr_T line, long len, int updtype) buf->b_ml.ml_chunksize = (chunksize_T *) xrealloc(buf->b_ml.ml_chunksize, sizeof(chunksize_T) * buf->b_ml.ml_numchunks); - if (buf->b_ml.ml_chunksize == NULL) { - /* Hmmmm, Give up on offset for this buffer */ - buf->b_ml.ml_usedchunks = -1; - return; - } } if (buf->b_ml.ml_chunksize[curix].mlcs_numlines >= MLCS_MAXL) { diff --git a/src/memory.c b/src/memory.c index d970740cd4..a878cb63da 100644 --- a/src/memory.c +++ b/src/memory.c @@ -71,8 +71,7 @@ char_u *alloc_clear(unsigned size) char_u *p; p = lalloc((long_u)size, TRUE); - if (p != NULL) - (void)memset(p, 0, (size_t)size); + (void)memset(p, 0, (size_t)size); return p; } diff --git a/src/menu.c b/src/menu.c index 5461bd186a..dd66faa4f9 100644 --- a/src/menu.c +++ b/src/menu.c @@ -375,8 +375,6 @@ add_menu_path ( /* Not already there, so lets add it */ menu = (vimmenu_T *)alloc_clear((unsigned)sizeof(vimmenu_T)); - if (menu == NULL) - goto erret; menu->modes = modes; menu->enabled = MENU_ALL_MODES; @@ -467,22 +465,20 @@ add_menu_path ( if (c != 0) { menu->strings[i] = alloc((unsigned)(STRLEN(call_data) + 5 )); - if (menu->strings[i] != NULL) { - menu->strings[i][0] = c; - if (d == 0) - STRCPY(menu->strings[i] + 1, call_data); - else { - menu->strings[i][1] = d; - STRCPY(menu->strings[i] + 2, call_data); - } - if (c == Ctrl_C) { - int len = (int)STRLEN(menu->strings[i]); - - /* Append CTRL-\ CTRL-G to obey 'insertmode'. */ - menu->strings[i][len] = Ctrl_BSL; - menu->strings[i][len + 1] = Ctrl_G; - menu->strings[i][len + 2] = NUL; - } + menu->strings[i][0] = c; + if (d == 0) + STRCPY(menu->strings[i] + 1, call_data); + else { + menu->strings[i][1] = d; + STRCPY(menu->strings[i] + 2, call_data); + } + if (c == Ctrl_C) { + int len = (int)STRLEN(menu->strings[i]); + + /* Append CTRL-\ CTRL-G to obey 'insertmode'. */ + menu->strings[i][len] = Ctrl_BSL; + menu->strings[i][len + 1] = Ctrl_G; + menu->strings[i][len + 2] = NUL; } } else menu->strings[i] = p; diff --git a/src/message.c b/src/message.c index 6ee608861f..57942de2c6 100644 --- a/src/message.c +++ b/src/message.c @@ -239,8 +239,7 @@ msg_strtrunc ( else len = room + 2; buf = alloc(len); - if (buf != NULL) - trunc_string(s, buf, room, len); + trunc_string(s, buf, room, len); } } return buf; @@ -394,8 +393,7 @@ static char_u *get_emsg_source(void) if (sourcing_name != NULL && other_sourcing_name()) { p = (char_u *)_("Error detected while processing %s:"); Buf = alloc((unsigned)(STRLEN(sourcing_name) + STRLEN(p))); - if (Buf != NULL) - sprintf((char *)Buf, (char *)p, sourcing_name); + sprintf((char *)Buf, (char *)p, sourcing_name); return Buf; } return NULL; @@ -417,8 +415,7 @@ static char_u *get_emsg_lnum(void) && sourcing_lnum != 0) { p = (char_u *)_("line %4ld:"); Buf = alloc((unsigned)(STRLEN(p) + 20)); - if (Buf != NULL) - sprintf((char *)Buf, (char *)p, (long)sourcing_lnum); + sprintf((char *)Buf, (char *)p, (long)sourcing_lnum); return Buf; } return NULL; @@ -665,26 +662,24 @@ add_msg_hist ( /* allocate an entry and add the message at the end of the history */ p = (struct msg_hist *)alloc((int)sizeof(struct msg_hist)); - if (p != NULL) { - if (len < 0) - len = (int)STRLEN(s); - /* remove leading and trailing newlines */ - while (len > 0 && *s == '\n') { - ++s; - --len; - } - while (len > 0 && s[len - 1] == '\n') - --len; - p->msg = vim_strnsave(s, len); - p->next = NULL; - p->attr = attr; - if (last_msg_hist != NULL) - last_msg_hist->next = p; - last_msg_hist = p; - if (first_msg_hist == NULL) - first_msg_hist = last_msg_hist; - ++msg_hist_len; - } + if (len < 0) + len = (int)STRLEN(s); + /* remove leading and trailing newlines */ + while (len > 0 && *s == '\n') { + ++s; + --len; + } + while (len > 0 && s[len - 1] == '\n') + --len; + p->msg = vim_strnsave(s, len); + p->next = NULL; + p->attr = attr; + if (last_msg_hist != NULL) + last_msg_hist->next = p; + last_msg_hist = p; + if (first_msg_hist == NULL) + first_msg_hist = last_msg_hist; + ++msg_hist_len; } /* @@ -1818,11 +1813,9 @@ static void inc_msg_scrolled(void) else { len = (int)STRLEN(p) + 40; tofree = alloc(len); - if (tofree != NULL) { - vim_snprintf((char *)tofree, len, _("%s line %ld"), - p, (long)sourcing_lnum); - p = tofree; - } + vim_snprintf((char *)tofree, len, _("%s line %ld"), + p, (long)sourcing_lnum); + p = tofree; } set_vim_var_string(VV_SCROLLSTART, p, -1); vim_free(tofree); @@ -1872,22 +1865,20 @@ store_sb_text ( if (s > *sb_str) { mp = (msgchunk_T *)alloc((int)(sizeof(msgchunk_T) + (s - *sb_str))); - if (mp != NULL) { - mp->sb_eol = finish; - mp->sb_msg_col = *sb_col; - mp->sb_attr = attr; - vim_strncpy(mp->sb_text, *sb_str, s - *sb_str); - - if (last_msgchunk == NULL) { - last_msgchunk = mp; - mp->sb_prev = NULL; - } else { - mp->sb_prev = last_msgchunk; - last_msgchunk->sb_next = mp; - last_msgchunk = mp; - } - mp->sb_next = NULL; + mp->sb_eol = finish; + mp->sb_msg_col = *sb_col; + mp->sb_attr = attr; + vim_strncpy(mp->sb_text, *sb_str, s - *sb_str); + + if (last_msgchunk == NULL) { + last_msgchunk = mp; + mp->sb_prev = NULL; + } else { + mp->sb_prev = last_msgchunk; + last_msgchunk->sb_next = mp; + last_msgchunk = mp; } + mp->sb_next = NULL; } else if (finish && last_msgchunk != NULL) last_msgchunk->sb_eol = TRUE; diff --git a/src/misc1.c b/src/misc1.c index 4f36b88584..e83314c156 100644 --- a/src/misc1.c +++ b/src/misc1.c @@ -509,180 +509,176 @@ open_line ( + (second_line_indent > 0 ? second_line_indent : 0) + 1); allocated = leader; /* remember to free it later */ - if (leader == NULL) - lead_len = 0; - else { - vim_strncpy(leader, saved_line, lead_len); + vim_strncpy(leader, saved_line, lead_len); - /* - * Replace leader with lead_repl, right or left adjusted - */ - if (lead_repl != NULL) { - int c = 0; - int off = 0; - - for (p = lead_flags; *p != NUL && *p != ':'; ) { - if (*p == COM_RIGHT || *p == COM_LEFT) - c = *p++; - else if (VIM_ISDIGIT(*p) || *p == '-') - off = getdigits(&p); - else - ++p; - } - if (c == COM_RIGHT) { /* right adjusted leader */ - /* find last non-white in the leader to line up with */ - for (p = leader + lead_len - 1; p > leader - && vim_iswhite(*p); --p) - ; + /* + * Replace leader with lead_repl, right or left adjusted + */ + if (lead_repl != NULL) { + int c = 0; + int off = 0; + + for (p = lead_flags; *p != NUL && *p != ':'; ) { + if (*p == COM_RIGHT || *p == COM_LEFT) + c = *p++; + else if (VIM_ISDIGIT(*p) || *p == '-') + off = getdigits(&p); + else ++p; + } + if (c == COM_RIGHT) { /* right adjusted leader */ + /* find last non-white in the leader to line up with */ + for (p = leader + lead_len - 1; p > leader + && vim_iswhite(*p); --p) + ; + ++p; - /* Compute the length of the replaced characters in - * screen characters, not bytes. */ - { - int repl_size = vim_strnsize(lead_repl, - lead_repl_len); - int old_size = 0; - char_u *endp = p; - int l; - - while (old_size < repl_size && p > leader) { - mb_ptr_back(leader, p); - old_size += ptr2cells(p); - } - l = lead_repl_len - (int)(endp - p); - if (l != 0) - memmove(endp + l, endp, - (size_t)((leader + lead_len) - endp)); - lead_len += l; - } - memmove(p, lead_repl, (size_t)lead_repl_len); - if (p + lead_repl_len > leader + lead_len) - p[lead_repl_len] = NUL; - - /* blank-out any other chars from the old leader. */ - while (--p >= leader) { - int l = mb_head_off(leader, p); - - if (l > 1) { - p -= l; - if (ptr2cells(p) > 1) { - p[1] = ' '; - --l; - } - memmove(p + 1, p + l + 1, - (size_t)((leader + lead_len) - (p + l + 1))); - lead_len -= l; - *p = ' '; - } else if (!vim_iswhite(*p)) - *p = ' '; + /* Compute the length of the replaced characters in + * screen characters, not bytes. */ + { + int repl_size = vim_strnsize(lead_repl, + lead_repl_len); + int old_size = 0; + char_u *endp = p; + int l; + + while (old_size < repl_size && p > leader) { + mb_ptr_back(leader, p); + old_size += ptr2cells(p); } - } else { /* left adjusted leader */ - p = skipwhite(leader); - /* Compute the length of the replaced characters in - * screen characters, not bytes. Move the part that is - * not to be overwritten. */ - { - int repl_size = vim_strnsize(lead_repl, - lead_repl_len); - int i; - int l; - - for (i = 0; p[i] != NUL && i < lead_len; i += l) { - l = (*mb_ptr2len)(p + i); - if (vim_strnsize(p, i + l) > repl_size) - break; - } - if (i != lead_repl_len) { - memmove(p + lead_repl_len, p + i, - (size_t)(lead_len - i - (p - leader))); - lead_len += lead_repl_len - i; + l = lead_repl_len - (int)(endp - p); + if (l != 0) + memmove(endp + l, endp, + (size_t)((leader + lead_len) - endp)); + lead_len += l; + } + memmove(p, lead_repl, (size_t)lead_repl_len); + if (p + lead_repl_len > leader + lead_len) + p[lead_repl_len] = NUL; + + /* blank-out any other chars from the old leader. */ + while (--p >= leader) { + int l = mb_head_off(leader, p); + + if (l > 1) { + p -= l; + if (ptr2cells(p) > 1) { + p[1] = ' '; + --l; } + memmove(p + 1, p + l + 1, + (size_t)((leader + lead_len) - (p + l + 1))); + lead_len -= l; + *p = ' '; + } else if (!vim_iswhite(*p)) + *p = ' '; + } + } else { /* left adjusted leader */ + p = skipwhite(leader); + /* Compute the length of the replaced characters in + * screen characters, not bytes. Move the part that is + * not to be overwritten. */ + { + int repl_size = vim_strnsize(lead_repl, + lead_repl_len); + int i; + int l; + + for (i = 0; p[i] != NUL && i < lead_len; i += l) { + l = (*mb_ptr2len)(p + i); + if (vim_strnsize(p, i + l) > repl_size) + break; } - memmove(p, lead_repl, (size_t)lead_repl_len); - - /* Replace any remaining non-white chars in the old - * leader by spaces. Keep Tabs, the indent must - * remain the same. */ - for (p += lead_repl_len; p < leader + lead_len; ++p) - if (!vim_iswhite(*p)) { - /* Don't put a space before a TAB. */ - if (p + 1 < leader + lead_len && p[1] == TAB) { - --lead_len; - memmove(p, p + 1, - (leader + lead_len) - p); - } else { - int l = (*mb_ptr2len)(p); - - if (l > 1) { - if (ptr2cells(p) > 1) { - /* Replace a double-wide char with - * two spaces */ - --l; - *p++ = ' '; - } - memmove(p + 1, p + l, - (leader + lead_len) - p); - lead_len -= l - 1; + if (i != lead_repl_len) { + memmove(p + lead_repl_len, p + i, + (size_t)(lead_len - i - (p - leader))); + lead_len += lead_repl_len - i; + } + } + memmove(p, lead_repl, (size_t)lead_repl_len); + + /* Replace any remaining non-white chars in the old + * leader by spaces. Keep Tabs, the indent must + * remain the same. */ + for (p += lead_repl_len; p < leader + lead_len; ++p) + if (!vim_iswhite(*p)) { + /* Don't put a space before a TAB. */ + if (p + 1 < leader + lead_len && p[1] == TAB) { + --lead_len; + memmove(p, p + 1, + (leader + lead_len) - p); + } else { + int l = (*mb_ptr2len)(p); + + if (l > 1) { + if (ptr2cells(p) > 1) { + /* Replace a double-wide char with + * two spaces */ + --l; + *p++ = ' '; } - *p = ' '; + memmove(p + 1, p + l, + (leader + lead_len) - p); + lead_len -= l - 1; } + *p = ' '; } - *p = NUL; - } + } + *p = NUL; + } - /* Recompute the indent, it may have changed. */ - if (curbuf->b_p_ai - || do_si - ) - newindent = get_indent_str(leader, (int)curbuf->b_p_ts); - - /* Add the indent offset */ - if (newindent + off < 0) { - off = -newindent; - newindent = 0; - } else - newindent += off; - - /* Correct trailing spaces for the shift, so that - * alignment remains equal. */ - while (off > 0 && lead_len > 0 - && leader[lead_len - 1] == ' ') { - /* Don't do it when there is a tab before the space */ - if (vim_strchr(skipwhite(leader), '\t') != NULL) - break; - --lead_len; - --off; - } + /* Recompute the indent, it may have changed. */ + if (curbuf->b_p_ai + || do_si + ) + newindent = get_indent_str(leader, (int)curbuf->b_p_ts); - /* If the leader ends in white space, don't add an - * extra space */ - if (lead_len > 0 && vim_iswhite(leader[lead_len - 1])) - extra_space = FALSE; - leader[lead_len] = NUL; + /* Add the indent offset */ + if (newindent + off < 0) { + off = -newindent; + newindent = 0; + } else + newindent += off; + + /* Correct trailing spaces for the shift, so that + * alignment remains equal. */ + while (off > 0 && lead_len > 0 + && leader[lead_len - 1] == ' ') { + /* Don't do it when there is a tab before the space */ + if (vim_strchr(skipwhite(leader), '\t') != NULL) + break; + --lead_len; + --off; } - if (extra_space) { - leader[lead_len++] = ' '; - leader[lead_len] = NUL; - } + /* If the leader ends in white space, don't add an + * extra space */ + if (lead_len > 0 && vim_iswhite(leader[lead_len - 1])) + extra_space = FALSE; + leader[lead_len] = NUL; + } - newcol = lead_len; + if (extra_space) { + leader[lead_len++] = ' '; + leader[lead_len] = NUL; + } - /* - * if a new indent will be set below, remove the indent that - * is in the comment leader - */ - if (newindent - || did_si - ) { - while (lead_len && vim_iswhite(*leader)) { - --lead_len; - --newcol; - ++leader; - } - } + newcol = lead_len; + /* + * if a new indent will be set below, remove the indent that + * is in the comment leader + */ + if (newindent + || did_si + ) { + while (lead_len && vim_iswhite(*leader)) { + --lead_len; + --newcol; + ++leader; + } } + did_si = can_si = FALSE; } else if (comment_end != NULL) { /* @@ -2420,10 +2416,6 @@ int get_keystroke(void) buf = xrealloc(buf, buflen); maxlen = (buflen - 6 - len) / 3; } - if (buf == NULL) { - do_outofmem_msg((long_u)buflen); - return ESC; /* panic! */ - } /* First time: blocking wait. Second time: wait up to 100ms for a * terminal code to complete. */ @@ -2739,8 +2731,7 @@ char_u *expand_env_save_opt(char_u *src, int one) char_u *p; p = alloc(MAXPATHL); - if (p != NULL) - expand_env_esc(src, p, MAXPATHL, FALSE, one, NULL); + expand_env_esc(src, p, MAXPATHL, FALSE, one, NULL); return p; } @@ -3385,8 +3376,7 @@ home_replace_save ( if (src != NULL) /* just in case */ len += (unsigned)STRLEN(src); dst = alloc(len); - if (dst != NULL) - home_replace(buf, src, dst, len, TRUE); + home_replace(buf, src, dst, len, TRUE); return dst; } @@ -3547,8 +3537,7 @@ get_cmd_output ( fseek(fd, 0L, SEEK_SET); buffer = alloc(len + 1); - if (buffer != NULL) - i = (int)fread((char *)buffer, (size_t)1, (size_t)len, fd); + i = (int)fread((char *)buffer, (size_t)1, (size_t)len, fd); fclose(fd); mch_remove(tempname); if (buffer == NULL) diff --git a/src/misc2.c b/src/misc2.c index fe80e0bbad..997fafc7ff 100644 --- a/src/misc2.c +++ b/src/misc2.c @@ -233,9 +233,6 @@ coladvance2 ( char_u *newline = alloc(idx + correct + 1); int t; - if (newline == NULL) - return FAIL; - for (t = 0; t < idx; ++t) newline[t] = line[t]; @@ -260,8 +257,6 @@ coladvance2 ( return FAIL; newline = alloc(linelen + csize); - if (newline == NULL) - return FAIL; for (t = 0; t < linelen; t++) { if (t != idx) @@ -623,10 +618,8 @@ char_u *vim_strnsave(char_u *string, int len) char_u *p; p = alloc((unsigned)(len + 1)); - if (p != NULL) { - STRNCPY(p, string, len); - p[len] = NUL; - } + STRNCPY(p, string, len); + p[len] = NUL; return p; } @@ -668,21 +661,20 @@ char_u *vim_strsave_escaped_ext(char_u *string, char_u *esc_chars, int cc, int b ++length; /* count an ordinary char */ } escaped_string = alloc(length); - if (escaped_string != NULL) { - p2 = escaped_string; - for (p = string; *p; p++) { - if (has_mbyte && (l = (*mb_ptr2len)(p)) > 1) { - memmove(p2, p, (size_t)l); - p2 += l; - p += l - 1; /* skip multibyte char */ - continue; - } - if (vim_strchr(esc_chars, *p) != NULL || (bsl && rem_backslash(p))) - *p2++ = cc; - *p2++ = *p; + p2 = escaped_string; + for (p = string; *p; p++) { + if (has_mbyte && (l = (*mb_ptr2len)(p)) > 1) { + memmove(p2, p, (size_t)l); + p2 += l; + p += l - 1; /* skip multibyte char */ + continue; } - *p2 = NUL; + if (vim_strchr(esc_chars, *p) != NULL || (bsl && rem_backslash(p))) + *p2++ = cc; + *p2++ = *p; } + *p2 = NUL; + return escaped_string; } @@ -736,43 +728,41 @@ char_u *vim_strsave_shellescape(char_u *string, int do_special) /* Allocate memory for the result and fill it. */ escaped_string = alloc(length); - if (escaped_string != NULL) { - d = escaped_string; + d = escaped_string; - /* add opening quote */ - *d++ = '\''; + /* add opening quote */ + *d++ = '\''; - for (p = string; *p != NUL; ) { - if (*p == '\'') { - *d++ = '\''; - *d++ = '\\'; - *d++ = '\''; - *d++ = '\''; - ++p; - continue; - } - if (*p == '\n' || (*p == '!' && (csh_like || do_special))) { + for (p = string; *p != NUL; ) { + if (*p == '\'') { + *d++ = '\''; + *d++ = '\\'; + *d++ = '\''; + *d++ = '\''; + ++p; + continue; + } + if (*p == '\n' || (*p == '!' && (csh_like || do_special))) { + *d++ = '\\'; + if (csh_like && do_special) *d++ = '\\'; - if (csh_like && do_special) - *d++ = '\\'; + *d++ = *p++; + continue; + } + if (do_special && find_cmdline_var(p, &l) >= 0) { + *d++ = '\\'; /* insert backslash */ + while (--l >= 0) /* copy the var */ *d++ = *p++; - continue; - } - if (do_special && find_cmdline_var(p, &l) >= 0) { - *d++ = '\\'; /* insert backslash */ - while (--l >= 0) /* copy the var */ - *d++ = *p++; - continue; - } - - MB_COPY_CHAR(p, d); + continue; } - /* add terminating quote and finish with a NUL */ - *d++ = '\''; - *d = NUL; + MB_COPY_CHAR(p, d); } + /* add terminating quote and finish with a NUL */ + *d++ = '\''; + *d = NUL; + return escaped_string; } @@ -847,8 +837,6 @@ char_u *strup_save(char_u *orig) newl = utf_char2len(uc); if (newl != l) { s = alloc((unsigned)STRLEN(res) + 1 + newl - l); - if (s == NULL) - break; memmove(s, res, p - res); STRCPY(s + (p - res) + newl, p + l); p = s + (p - res); @@ -1452,18 +1440,17 @@ char_u *read_string(FILE *fd, int cnt) /* allocate memory */ str = alloc((unsigned)cnt + 1); - if (str != NULL) { - /* Read the string. Quit when running into the EOF. */ - for (i = 0; i < cnt; ++i) { - c = getc(fd); - if (c == EOF) { - vim_free(str); - return NULL; - } - str[i] = c; + /* Read the string. Quit when running into the EOF. */ + for (i = 0; i < cnt; ++i) { + c = getc(fd); + if (c == EOF) { + vim_free(str); + return NULL; } - str[i] = NUL; + str[i] = c; } + str[i] = NUL; + return str; } diff --git a/src/normal.c b/src/normal.c index b3ba4ff77c..27428d5dd0 100644 --- a/src/normal.c +++ b/src/normal.c @@ -3434,8 +3434,7 @@ find_decl ( int retval = OK; int incll; - if ((pat = alloc(len + 7)) == NULL) - return FAIL; + pat = alloc(len + 7); /* Put "\V" before the pattern to avoid that the special meaning of "." * and "~" causes trouble. */ @@ -4410,8 +4409,6 @@ static void nv_ident(cmdarg_T *cap) kp_help = (*kp == NUL || STRCMP(kp, ":he") == 0 || STRCMP(kp, ":help") == 0); buf = alloc((unsigned)(n * 2 + 30 + STRLEN(kp))); - if (buf == NULL) - return; buf[0] = NUL; switch (cmdchar) { @@ -4500,11 +4497,6 @@ static void nv_ident(cmdarg_T *cap) return; } newbuf = (char_u *)xrealloc(buf, STRLEN(buf) + STRLEN(p) + 1); - if (newbuf == NULL) { - vim_free(buf); - vim_free(p); - return; - } buf = newbuf; STRCAT(buf, p); vim_free(p); @@ -799,22 +799,21 @@ get_register ( get_yank_register(name, 0); reg = (struct yankreg *)alloc((unsigned)sizeof(struct yankreg)); - if (reg != NULL) { - *reg = *y_current; - if (copy) { - /* If we run out of memory some or all of the lines are empty. */ - if (reg->y_size == 0) - reg->y_array = NULL; - else - reg->y_array = (char_u **)alloc((unsigned)(sizeof(char_u *) - * reg->y_size)); - if (reg->y_array != NULL) { - for (i = 0; i < reg->y_size; ++i) - reg->y_array[i] = vim_strsave(y_current->y_array[i]); - } - } else - y_current->y_array = NULL; - } + *reg = *y_current; + if (copy) { + /* If we run out of memory some or all of the lines are empty. */ + if (reg->y_size == 0) + reg->y_array = NULL; + else + reg->y_array = (char_u **)alloc((unsigned)(sizeof(char_u *) + * reg->y_size)); + if (reg->y_array != NULL) { + for (i = 0; i < reg->y_size; ++i) + reg->y_array[i] = vim_strsave(y_current->y_array[i]); + } + } else + y_current->y_array = NULL; + return (void *)reg; } @@ -931,10 +930,6 @@ static int stuff_yank(int regname, char_u *p) if (y_append && y_current->y_array != NULL) { pp = &(y_current->y_array[y_current->y_size - 1]); lp = lalloc((long_u)(STRLEN(*pp) + STRLEN(p) + 1), TRUE); - if (lp == NULL) { - vim_free(p); - return FAIL; - } STRCPY(lp, *pp); STRCAT(lp, p); vim_free(p); @@ -942,11 +937,7 @@ static int stuff_yank(int regname, char_u *p) *pp = lp; } else { free_yank_all(); - if ((y_current->y_array = - (char_u **)alloc((unsigned)sizeof(char_u *))) == NULL) { - vim_free(p); - return FAIL; - } + y_current->y_array = (char_u **)alloc((unsigned)sizeof(char_u *)); y_current->y_array[0] = p; y_current->y_size = 1; y_current->y_type = MCHAR; /* used to be MLINE, why? */ @@ -2443,11 +2434,6 @@ int op_yank(oparg_T *oap, int deleting, int mess) y_current->y_array = (char_u **)lalloc_clear((long_u)(sizeof(char_u *) * yanklines), TRUE); - if (y_current->y_array == NULL) { - y_current = curr; - return FAIL; - } - y_idx = 0; lnum = oap->start.lnum; @@ -2545,8 +2531,6 @@ int op_yank(oparg_T *oap, int deleting, int mess) (long_u)(sizeof(char_u *) * (curr->y_size + y_current->y_size)), TRUE); - if (new_ptr == NULL) - goto fail; for (j = 0; j < curr->y_size; ++j) new_ptr[j] = curr->y_array[j]; vim_free(curr->y_array); @@ -2560,10 +2544,6 @@ int op_yank(oparg_T *oap, int deleting, int mess) if (curr->y_type == MCHAR && vim_strchr(p_cpo, CPO_REGAPPEND) == NULL) { pnew = lalloc((long_u)(STRLEN(curr->y_array[curr->y_size - 1]) + STRLEN(y_current->y_array[0]) + 1), TRUE); - if (pnew == NULL) { - y_idx = y_current->y_size - 1; - goto fail; - } STRCPY(pnew, curr->y_array[--j]); STRCAT(pnew, y_current->y_array[0]); vim_free(curr->y_array[j]); @@ -2746,8 +2726,6 @@ do_put ( break; y_array = (char_u **)alloc((unsigned) (y_size * sizeof(char_u *))); - if (y_array == NULL) - goto end; } } else { y_size = 1; /* use fake one-line yank register */ @@ -3512,14 +3490,8 @@ int do_join(long count, int insert_space, int save_undo, int use_formatoptions) * line. We will use it to pre-compute the length of the new line and the * proper placement of each original line in the new one. */ spaces = lalloc_clear((long_u)count, TRUE); - if (spaces == NULL) - return FAIL; if (remove_comments) { comments = (int *)lalloc_clear((long_u)count * sizeof(int), TRUE); - if (comments == NULL) { - vim_free(spaces); - return FAIL; - } } /* @@ -4486,8 +4458,6 @@ int do_addsub(int command, linenr_T Prenum1) * a bit too much. */ buf1 = alloc((unsigned)length + NUMBUFLEN); - if (buf1 == NULL) - return FAIL; ptr = buf1; if (negative) { *ptr++ = '-'; @@ -4954,8 +4924,6 @@ str_to_reg ( */ pp = (char_u **)lalloc_clear((y_ptr->y_size + newlines) * sizeof(char_u *), TRUE); - if (pp == NULL) /* out of memory */ - return; for (lnum = 0; lnum < y_ptr->y_size; ++lnum) pp[lnum] = y_ptr->y_array[lnum]; vim_free(y_ptr->y_array); @@ -4978,8 +4946,6 @@ str_to_reg ( } else extra = 0; s = alloc((unsigned)(i + extra + 1)); - if (s == NULL) - break; if (extra) memmove(s, y_ptr->y_array[lnum], (size_t)extra); if (append) diff --git a/src/option.c b/src/option.c index dd66d5e4a3..d52117e83b 100644 --- a/src/option.c +++ b/src/option.c @@ -3128,8 +3128,6 @@ do_set ( if (adding || prepending || removing) newlen += (unsigned)STRLEN(origval) + 1; newval = alloc(newlen); - if (newval == NULL) /* out of mem, don't change */ - break; s = newval; /* @@ -3176,8 +3174,6 @@ do_set ( if (adding || prepending || removing) newlen += (unsigned)STRLEN(origval) + 1; newval = alloc(newlen); - if (newval == NULL) - break; STRCPY(newval, s); } } @@ -4890,17 +4886,15 @@ skip: wp->w_p_cc_cols = NULL; else { wp->w_p_cc_cols = (int *)alloc((unsigned)sizeof(int) * (count + 1)); - if (wp->w_p_cc_cols != NULL) { - /* sort the columns for faster usage on screen redraw inside - * win_line() */ - qsort(color_cols, count, sizeof(int), int_cmp); + /* sort the columns for faster usage on screen redraw inside + * win_line() */ + qsort(color_cols, count, sizeof(int), int_cmp); - for (i = 0; i < count; ++i) - /* skip duplicates */ - if (j == 0 || wp->w_p_cc_cols[j - 1] != color_cols[i]) - wp->w_p_cc_cols[j++] = color_cols[i]; - wp->w_p_cc_cols[j] = -1; /* end marker */ - } + for (i = 0; i < count; ++i) + /* skip duplicates */ + if (j == 0 || wp->w_p_cc_cols[j - 1] != color_cols[i]) + wp->w_p_cc_cols[j++] = color_cols[i]; + wp->w_p_cc_cols[j] = -1; /* end marker */ } return NULL; /* no error */ @@ -6172,8 +6166,6 @@ showoptions ( items = (struct vimoption **)alloc((unsigned)(sizeof(struct vimoption *) * PARAM_COUNT)); - if (items == NULL) - return; /* Highlight title */ if (all == 2) @@ -6465,8 +6457,6 @@ static int put_setstring(FILE *fd, char *cmd, char *name, char_u **valuep, int e return FAIL; } else if (expand) { buf = alloc(MAXPATHL); - if (buf == NULL) - return FAIL; home_replace(NULL, *valuep, buf, MAXPATHL, FALSE); if (put_escstr(fd, buf, 2) == FAIL) { vim_free(buf); @@ -7515,8 +7505,6 @@ int ExpandOldSetting(int *num_file, char_u ***file) *num_file = 0; *file = (char_u **)alloc((unsigned)sizeof(char_u *)); - if (*file == NULL) - return FAIL; /* * For a terminal key code expand_option_idx is < 0. diff --git a/src/os/fs.c b/src/os/fs.c index 44156f0dde..c472ad0da8 100644 --- a/src/os/fs.c +++ b/src/os/fs.c @@ -200,9 +200,6 @@ static int is_executable_in_path(const char_u *name) int buf_len = STRLEN(name) + STRLEN(path) + 2; char_u *buf = alloc((unsigned)(buf_len)); - if (buf == NULL) { - return FALSE; - } // Walk through all entries in $PATH to check if "name" exists there and // is an executable file. diff --git a/src/os_unix.c b/src/os_unix.c index 5da3c6fb3f..06b4e30ffd 100644 --- a/src/os_unix.c +++ b/src/os_unix.c @@ -1143,11 +1143,6 @@ int flags; /* EW_* flags */ } } command = alloc(len); - if (command == NULL) { - /* out of memory */ - vim_free(tempname); - return FAIL; - } /* * Build the shell command: @@ -1297,13 +1292,6 @@ int flags; /* EW_* flags */ len = ftell(fd); /* get size of temp file */ fseek(fd, 0L, SEEK_SET); buffer = alloc(len + 1); - if (buffer == NULL) { - /* out of memory */ - mch_remove(tempname); - vim_free(tempname); - fclose(fd); - return FAIL; - } i = fread((char *)buffer, 1, len, fd); fclose(fd); mch_remove(tempname); @@ -1388,11 +1376,6 @@ int flags; /* EW_* flags */ } *num_file = i; *file = (char_u **)alloc(sizeof(char_u *) * i); - if (*file == NULL) { - /* out of memory */ - vim_free(buffer); - return FAIL; - } /* * Isolate the individual file names. @@ -1437,12 +1420,10 @@ int flags; /* EW_* flags */ continue; p = alloc((unsigned)(STRLEN((*file)[i]) + 1 + dir)); - if (p) { - STRCPY(p, (*file)[i]); - if (dir) - add_pathsep(p); /* add '/' to a directory name */ - (*file)[j++] = p; - } + STRCPY(p, (*file)[i]); + if (dir) + add_pathsep(p); /* add '/' to a directory name */ + (*file)[j++] = p; } vim_free(buffer); *num_file = j; diff --git a/src/path.c b/src/path.c index 67241522f6..595499f709 100644 --- a/src/path.c +++ b/src/path.c @@ -397,8 +397,6 @@ unix_expandpath ( /* make room for file name */ buf = alloc((int)STRLEN(path) + BASENAMELEN + 5); - if (buf == NULL) - return 0; /* * Find the first part in the path name that contains a wildcard. @@ -627,8 +625,7 @@ static void expand_path_option(char_u *curdir, garray_T *gap) char_u *p; int len; - if ((buf = alloc((int)MAXPATHL)) == NULL) - return; + buf = alloc((int)MAXPATHL); while (*path_option != NUL) { copy_option_part(&path_option, buf, MAXPATHL, " ,"); @@ -745,8 +742,6 @@ static void uniquefy_paths(garray_T *gap, char_u *pattern) */ len = (int)STRLEN(pattern); file_pattern = alloc(len + 2); - if (file_pattern == NULL) - return; file_pattern[0] = '*'; file_pattern[1] = NUL; STRCAT(file_pattern, pattern); @@ -761,14 +756,11 @@ static void uniquefy_paths(garray_T *gap, char_u *pattern) if (regmatch.regprog == NULL) return; - if ((curdir = alloc((int)(MAXPATHL))) == NULL) - goto theend; + curdir = alloc((int)(MAXPATHL)); os_dirname(curdir, MAXPATHL); expand_path_option(curdir, &path_ga); in_curdir = (char_u **)alloc_clear(gap->ga_len * sizeof(char_u *)); - if (in_curdir == NULL) - goto theend; for (i = 0; i < gap->ga_len && !got_int; i++) { char_u *path = fnames[i]; @@ -841,8 +833,6 @@ static void uniquefy_paths(garray_T *gap, char_u *pattern) } rel_path = alloc((int)(STRLEN(short_name) + STRLEN(PATHSEPSTR) + 2)); - if (rel_path == NULL) - goto theend; STRCPY(rel_path, "."); add_pathsep(rel_path); STRCAT(rel_path, short_name); @@ -853,7 +843,6 @@ static void uniquefy_paths(garray_T *gap, char_u *pattern) ui_breakcheck(); } -theend: vim_free(curdir); if (in_curdir != NULL) { for (i = 0; i < gap->ga_len; i++) @@ -916,8 +905,7 @@ expand_in_path ( char_u *e; /* end */ char_u *paths = NULL; - if ((curdir = alloc((unsigned)MAXPATHL)) == NULL) - return 0; + curdir = alloc((unsigned)MAXPATHL); os_dirname(curdir, MAXPATHL); ga_init(&path_ga, (int)sizeof(char_u *), 1); @@ -1245,8 +1233,6 @@ addfile ( return; p = alloc((unsigned)(STRLEN(f) + 1 + isdir)); - if (p == NULL) - return; STRCPY(p, f); #ifdef BACKSLASH_IN_FILENAME @@ -1745,8 +1731,6 @@ char_u *shorten_fname1(char_u *full_path) char_u *p = full_path; dirname = alloc(MAXPATHL); - if (dirname == NULL) - return full_path; if (os_dirname(dirname, MAXPATHL) == OK) { p = shorten_fname(full_path, dirname); if (p == NULL || *p == NUL) diff --git a/src/quickfix.c b/src/quickfix.c index 954f81e72e..d693ea4304 100644 --- a/src/quickfix.c +++ b/src/quickfix.c @@ -288,8 +288,6 @@ qf_init_ext ( namebuf = alloc(CMDBUFFSIZE + 1); errmsg = alloc(CMDBUFFSIZE + 1); pattern = alloc(CMDBUFFSIZE + 1); - if (namebuf == NULL || errmsg == NULL || pattern == NULL) - goto qf_init_end; if (efile != NULL && (fd = mch_fopen((char *)efile, "r")) == NULL) { EMSG2(_(e_openerrf), efile); @@ -325,16 +323,13 @@ qf_init_ext ( #else i += 2; /* "%f" can become two chars longer */ #endif - if ((fmtstr = alloc(i)) == NULL) - goto error2; + fmtstr = alloc(i); while (efm[0] != NUL) { /* * Allocate a new eformat structure and put it at the end of the list */ fmt_ptr = (efm_T *)alloc_clear((unsigned)sizeof(efm_T)); - if (fmt_ptr == NULL) - goto error2; if (fmt_first == NULL) /* first one */ fmt_first = fmt_ptr; else @@ -725,9 +720,7 @@ restofline: goto error2; if (*errmsg && !multiignore) { len = (int)STRLEN(qfprev->qf_text); - if ((ptr = alloc((unsigned)(len + STRLEN(errmsg) + 2))) - == NULL) - goto error2; + ptr = alloc((unsigned)(len + STRLEN(errmsg) + 2)); STRCPY(ptr, qfprev->qf_text); vim_free(qfprev->qf_text); qfprev->qf_text = ptr; @@ -866,8 +859,7 @@ static void qf_new_list(qf_info_T *qi, char_u *qf_title) char_u *p = alloc((int)STRLEN(qf_title) + 2); qi->qf_lists[qi->qf_curlist].qf_title = p; - if (p != NULL) - sprintf((char *)p, ":%s", (char *)qf_title); + sprintf((char *)p, ":%s", (char *)qf_title); } } @@ -931,8 +923,8 @@ qf_add_entry ( { qfline_T *qfp; - if ((qfp = (qfline_T *)alloc((unsigned)sizeof(qfline_T))) == NULL) - return FAIL; + qfp = (qfline_T *)alloc((unsigned)sizeof(qfline_T)); + if (bufnum != 0) qfp->qf_fnum = bufnum; else @@ -987,10 +979,8 @@ static qf_info_T *ll_new_list(void) qf_info_T *qi; qi = (qf_info_T *)alloc((unsigned)sizeof(qf_info_T)); - if (qi != NULL) { - memset(qi, 0, (size_t)(sizeof(qf_info_T))); - qi->qf_refcount++; - } + memset(qi, 0, (size_t)(sizeof(qf_info_T))); + qi->qf_refcount++; return qi; } @@ -1164,8 +1154,6 @@ static char_u *qf_push_dir(char_u *dirbuf, struct dir_stack_T **stackptr) /* allocate new stack element and hook it in */ ds_new = (struct dir_stack_T *)alloc((unsigned)sizeof(struct dir_stack_T)); - if (ds_new == NULL) - return NULL; ds_new->next = *stackptr; *stackptr = ds_new; @@ -2530,8 +2518,6 @@ void ex_make(exarg_T *eap) if (*p_sp != NUL) len += (unsigned)STRLEN(p_sp) + (unsigned)STRLEN(fname) + 3; cmd = alloc(len); - if (cmd == NULL) - return; sprintf((char *)cmd, "%s%s%s", (char *)p_shq, (char *)eap->arg, (char *)p_shq); if (*p_sp != NUL) @@ -2610,8 +2596,6 @@ static char_u *get_mef_name(void) off += 19; name = alloc((unsigned)STRLEN(p_mef) + 30); - if (name == NULL) - break; STRCPY(name, p_mef); sprintf((char *)name + (p - p_mef), "%d%d", start, off); STRCAT(name, p + 2); @@ -2863,8 +2847,6 @@ void ex_vimgrep(exarg_T *eap) dirname_start = alloc(MAXPATHL); dirname_now = alloc(MAXPATHL); - if (dirname_start == NULL || dirname_now == NULL) - goto theend; /* Remember the current directory, because a BufRead autocommand that does * ":lcd %:p:h" changes the meaning of short path names. */ @@ -3134,19 +3116,17 @@ static void restore_start_dir(char_u *dirname_start) { char_u *dirname_now = alloc(MAXPATHL); - if (NULL != dirname_now) { - os_dirname(dirname_now, MAXPATHL); - if (STRCMP(dirname_start, dirname_now) != 0) { - /* If the directory has changed, change it back by building up an - * appropriate ex command and executing it. */ - exarg_T ea; + os_dirname(dirname_now, MAXPATHL); + if (STRCMP(dirname_start, dirname_now) != 0) { + /* If the directory has changed, change it back by building up an + * appropriate ex command and executing it. */ + exarg_T ea; - ea.arg = dirname_start; - ea.cmdidx = (curwin->w_localdir == NULL) ? CMD_cd : CMD_lcd; - ex_cd(&ea); - } - vim_free(dirname_now); + ea.arg = dirname_start; + ea.cmdidx = (curwin->w_localdir == NULL) ? CMD_cd : CMD_lcd; + ex_cd(&ea); } + vim_free(dirname_now); } /* diff --git a/src/regexp.c b/src/regexp.c index fe496e791c..44e25856ce 100644 --- a/src/regexp.c +++ b/src/regexp.c @@ -1222,8 +1222,6 @@ static regprog_T *bt_regcomp(char_u *expr, int re_flags) /* Allocate space. */ r = (bt_regprog_T *)lalloc(sizeof(bt_regprog_T) + regsize, TRUE); - if (r == NULL) - return NULL; /* * Second pass: emit code. @@ -3592,8 +3590,7 @@ static reg_extmatch_T *make_extmatch(void) reg_extmatch_T *em; em = (reg_extmatch_T *)alloc_clear((unsigned)sizeof(reg_extmatch_T)); - if (em != NULL) - em->refcnt = 1; + em->refcnt = 1; return em; } @@ -5699,8 +5696,6 @@ static int match_with_backref(linenr_T start_lnum, colnr_T start_col, linenr_T e len += 50; /* get some extra */ vim_free(reg_tofree); reg_tofree = alloc(len); - if (reg_tofree == NULL) - return RA_FAIL; /* out of memory!*/ reg_tofreelen = len; } STRCPY(reg_tofree, regline); @@ -6451,22 +6446,20 @@ char_u *regtilde(char_u *source, int magic) /* length = len(newsub) - 1 + len(prev_sub) + 1 */ prevlen = (int)STRLEN(reg_prev_sub); tmpsub = alloc((unsigned)(STRLEN(newsub) + prevlen)); - if (tmpsub != NULL) { - /* copy prefix */ - len = (int)(p - newsub); /* not including ~ */ - memmove(tmpsub, newsub, (size_t)len); - /* interpret tilde */ - memmove(tmpsub + len, reg_prev_sub, (size_t)prevlen); - /* copy postfix */ - if (!magic) - ++p; /* back off \ */ - STRCPY(tmpsub + len + prevlen, p + 1); - - if (newsub != source) /* already allocated newsub */ - vim_free(newsub); - newsub = tmpsub; - p = newsub + len + prevlen; - } + /* copy prefix */ + len = (int)(p - newsub); /* not including ~ */ + memmove(tmpsub, newsub, (size_t)len); + /* interpret tilde */ + memmove(tmpsub + len, reg_prev_sub, (size_t)prevlen); + /* copy postfix */ + if (!magic) + ++p; /* back off \ */ + STRCPY(tmpsub + len + prevlen, p + 1); + + if (newsub != source) /* already allocated newsub */ + vim_free(newsub); + newsub = tmpsub; + p = newsub + len + prevlen; } else if (magic) STRMOVE(p, p + 1); /* remove '~' */ else @@ -6926,8 +6919,6 @@ char_u *reg_submatch(int no) if (retval == NULL) { retval = lalloc((long_u)len, TRUE); - if (retval == NULL) - return NULL; } } } else { diff --git a/src/regexp_nfa.c b/src/regexp_nfa.c index cb07272adb..52f09ebbb7 100644 --- a/src/regexp_nfa.c +++ b/src/regexp_nfa.c @@ -523,18 +523,17 @@ static char_u *nfa_get_match_text(nfa_state_T *start) return NULL; ret = alloc(len); - if (ret != NULL) { - p = start->out->out; /* skip first char, it goes into regstart */ - s = ret; - while (p->c > 0) { - if (has_mbyte) - s += (*mb_char2bytes)(p->c, s); - else - *s++ = p->c; - p = p->out; - } - *s = NUL; + p = start->out->out; /* skip first char, it goes into regstart */ + s = ret; + while (p->c > 0) { + if (has_mbyte) + s += (*mb_char2bytes)(p->c, s); + else + *s++ = p->c; + p = p->out; } + *s = NUL; + return ret; } @@ -4219,8 +4218,6 @@ addstate_here ( l->len = l->len * 3 / 2 + 50; newl = (nfa_thread_T *)alloc(l->len * sizeof(nfa_thread_T)); - if (newl == NULL) - return; memmove(&(newl[0]), &(l->t[0]), sizeof(nfa_thread_T) * listidx); @@ -4550,10 +4547,6 @@ static int recursive_regmatch(nfa_state_T *state, nfa_pim_T *pim, nfa_regprog_T * values and clear them. */ if (*listids == NULL) { *listids = (int *)lalloc(sizeof(int) * nstate, TRUE); - if (*listids == NULL) { - EMSG(_("E878: (NFA) Could not allocate memory for branch traversal!")); - return 0; - } } nfa_save_listids(prog, *listids); need_restore = TRUE; @@ -4885,8 +4878,6 @@ static int nfa_regmatch(nfa_regprog_T *prog, nfa_state_T *start, regsubs_T *subm list[0].len = nstate + 1; list[1].t = (nfa_thread_T *)lalloc(size, TRUE); list[1].len = nstate + 1; - if (list[0].t == NULL || list[1].t == NULL) - goto theend; #ifdef ENABLE_LOG log_fd = fopen(NFA_REGEXP_RUN_LOG, "a"); @@ -6037,7 +6028,6 @@ nextchar: log_fd = NULL; #endif -theend: /* Free memory */ vim_free(list[0].t); vim_free(list[1].t); @@ -6314,8 +6304,6 @@ static regprog_T *nfa_regcomp(char_u *expr, int re_flags) /* allocate the regprog with space for the compiled regexp */ prog_size = sizeof(nfa_regprog_T) + sizeof(nfa_state_T) * (nstate - 1); prog = (nfa_regprog_T *)lalloc(prog_size, TRUE); - if (prog == NULL) - goto fail; state_ptr = prog->state; /* diff --git a/src/screen.c b/src/screen.c index cc4e0bb9fe..b6e3c46002 100644 --- a/src/screen.c +++ b/src/screen.c @@ -293,82 +293,74 @@ int redraw_asap(int type) (long_u)(rows * Columns * sizeof(schar_T)), FALSE); screenattr = (sattr_T *)lalloc( (long_u)(rows * Columns * sizeof(sattr_T)), FALSE); - if (screenline == NULL || screenattr == NULL) - ret = 2; + if (enc_utf8) { screenlineUC = (u8char_T *)lalloc( (long_u)(rows * Columns * sizeof(u8char_T)), FALSE); - if (screenlineUC == NULL) - ret = 2; + for (i = 0; i < p_mco; ++i) { screenlineC[i] = (u8char_T *)lalloc( (long_u)(rows * Columns * sizeof(u8char_T)), FALSE); - if (screenlineC[i] == NULL) - ret = 2; } } if (enc_dbcs == DBCS_JPNU) { screenline2 = (schar_T *)lalloc( (long_u)(rows * Columns * sizeof(schar_T)), FALSE); - if (screenline2 == NULL) - ret = 2; } - if (ret != 2) { - /* Save the text displayed in the command line area. */ + /* Save the text displayed in the command line area. */ + for (r = 0; r < rows; ++r) { + memmove(screenline + r * Columns, + ScreenLines + LineOffset[cmdline_row + r], + (size_t)Columns * sizeof(schar_T)); + memmove(screenattr + r * Columns, + ScreenAttrs + LineOffset[cmdline_row + r], + (size_t)Columns * sizeof(sattr_T)); + if (enc_utf8) { + memmove(screenlineUC + r * Columns, + ScreenLinesUC + LineOffset[cmdline_row + r], + (size_t)Columns * sizeof(u8char_T)); + for (i = 0; i < p_mco; ++i) + memmove(screenlineC[i] + r * Columns, + ScreenLinesC[r] + LineOffset[cmdline_row + r], + (size_t)Columns * sizeof(u8char_T)); + } + if (enc_dbcs == DBCS_JPNU) + memmove(screenline2 + r * Columns, + ScreenLines2 + LineOffset[cmdline_row + r], + (size_t)Columns * sizeof(schar_T)); + } + + update_screen(0); + ret = 3; + + if (must_redraw == 0) { + int off = (int)(current_ScreenLine - ScreenLines); + + /* Restore the text displayed in the command line area. */ for (r = 0; r < rows; ++r) { - memmove(screenline + r * Columns, - ScreenLines + LineOffset[cmdline_row + r], + memmove(current_ScreenLine, + screenline + r * Columns, (size_t)Columns * sizeof(schar_T)); - memmove(screenattr + r * Columns, - ScreenAttrs + LineOffset[cmdline_row + r], + memmove(ScreenAttrs + off, + screenattr + r * Columns, (size_t)Columns * sizeof(sattr_T)); if (enc_utf8) { - memmove(screenlineUC + r * Columns, - ScreenLinesUC + LineOffset[cmdline_row + r], + memmove(ScreenLinesUC + off, + screenlineUC + r * Columns, (size_t)Columns * sizeof(u8char_T)); for (i = 0; i < p_mco; ++i) - memmove(screenlineC[i] + r * Columns, - ScreenLinesC[r] + LineOffset[cmdline_row + r], + memmove(ScreenLinesC[i] + off, + screenlineC[i] + r * Columns, (size_t)Columns * sizeof(u8char_T)); } if (enc_dbcs == DBCS_JPNU) - memmove(screenline2 + r * Columns, - ScreenLines2 + LineOffset[cmdline_row + r], - (size_t)Columns * sizeof(schar_T)); - } - - update_screen(0); - ret = 3; - - if (must_redraw == 0) { - int off = (int)(current_ScreenLine - ScreenLines); - - /* Restore the text displayed in the command line area. */ - for (r = 0; r < rows; ++r) { - memmove(current_ScreenLine, - screenline + r * Columns, + memmove(ScreenLines2 + off, + screenline2 + r * Columns, (size_t)Columns * sizeof(schar_T)); - memmove(ScreenAttrs + off, - screenattr + r * Columns, - (size_t)Columns * sizeof(sattr_T)); - if (enc_utf8) { - memmove(ScreenLinesUC + off, - screenlineUC + r * Columns, - (size_t)Columns * sizeof(u8char_T)); - for (i = 0; i < p_mco; ++i) - memmove(ScreenLinesC[i] + off, - screenlineC[i] + r * Columns, - (size_t)Columns * sizeof(u8char_T)); - } - if (enc_dbcs == DBCS_JPNU) - memmove(ScreenLines2 + off, - screenline2 + r * Columns, - (size_t)Columns * sizeof(schar_T)); - SCREEN_LINE(cmdline_row + r, 0, Columns, Columns, FALSE); - } - ret = 4; + SCREEN_LINE(cmdline_row + r, 0, Columns, Columns, FALSE); } + ret = 4; } vim_free(screenline); @@ -4708,8 +4700,6 @@ win_redr_status_matches ( buf = alloc((unsigned)Columns * MB_MAXBYTES + 1); else buf = alloc((unsigned)Columns + 1); - if (buf == NULL) - return; if (match == -1) { /* don't show match but original text */ match = 0; diff --git a/src/search.c b/src/search.c index 73c058fd73..1746c3f2e9 100644 --- a/src/search.c +++ b/src/search.c @@ -4199,22 +4199,20 @@ find_pattern_in_path ( if (depth + 1 == old_files) { bigger = (SearchedFile *)lalloc((long_u)( max_path_depth * 2 * sizeof(SearchedFile)), TRUE); - if (bigger != NULL) { - for (i = 0; i <= depth; i++) - bigger[i] = files[i]; - for (i = depth + 1; i < old_files + max_path_depth; i++) { - bigger[i].fp = NULL; - bigger[i].name = NULL; - bigger[i].lnum = 0; - bigger[i].matched = FALSE; - } - for (i = old_files; i < max_path_depth; i++) - bigger[i + max_path_depth] = files[i]; - old_files += max_path_depth; - max_path_depth *= 2; - vim_free(files); - files = bigger; + for (i = 0; i <= depth; i++) + bigger[i] = files[i]; + for (i = depth + 1; i < old_files + max_path_depth; i++) { + bigger[i].fp = NULL; + bigger[i].name = NULL; + bigger[i].lnum = 0; + bigger[i].matched = FALSE; } + for (i = old_files; i < max_path_depth; i++) + bigger[i + max_path_depth] = files[i]; + old_files += max_path_depth; + max_path_depth *= 2; + vim_free(files); + files = bigger; } if ((files[depth + 1].fp = mch_fopen((char *)new_fname, "r")) == NULL) diff --git a/src/spell.c b/src/spell.c index f684e5b2b0..134b5464b6 100644 --- a/src/spell.c +++ b/src/spell.c @@ -2078,8 +2078,6 @@ spell_move_to ( vim_free(buf); buflen = len + MAXWLEN + 2; buf = alloc(buflen); - if (buf == NULL) - break; } /* In first line check first word for Capital. */ @@ -2363,15 +2361,13 @@ static slang_T *slang_alloc(char_u *lang) slang_T *lp; lp = (slang_T *)alloc_clear(sizeof(slang_T)); - if (lp != NULL) { - if (lang != NULL) - lp->sl_name = vim_strsave(lang); - ga_init(&lp->sl_rep, sizeof(fromto_T), 10); - ga_init(&lp->sl_repsal, sizeof(fromto_T), 10); - lp->sl_compmax = MAXWLEN; - lp->sl_compsylmax = MAXWLEN; - hash_init(&lp->sl_wordcount); - } + if (lang != NULL) + lp->sl_name = vim_strsave(lang); + ga_init(&lp->sl_rep, sizeof(fromto_T), 10); + ga_init(&lp->sl_repsal, sizeof(fromto_T), 10); + lp->sl_compmax = MAXWLEN; + lp->sl_compsylmax = MAXWLEN; + hash_init(&lp->sl_wordcount); return lp; } @@ -2867,8 +2863,6 @@ static int read_prefcond_section(FILE *fd, slang_T *lp) lp->sl_prefprog = (regprog_T **)alloc_clear( (unsigned)sizeof(regprog_T *) * cnt); - if (lp->sl_prefprog == NULL) - return SP_OTHERERROR; lp->sl_prefixcnt = cnt; for (i = 0; i < cnt; ++i) { @@ -2975,8 +2969,7 @@ static int read_sal_section(FILE *fd, slang_T *slang) ccnt = getc(fd); /* <salfromlen> */ if (ccnt < 0) return SP_TRUNCERROR; - if ((p = alloc(ccnt + 2)) == NULL) - return SP_OTHERERROR; + p = alloc(ccnt + 2); smp->sm_lead = p; /* Read up to the first special char into sm_lead. */ @@ -3049,8 +3042,7 @@ static int read_sal_section(FILE *fd, slang_T *slang) /* Add one extra entry to mark the end with an empty sm_lead. Avoids * that we need to check the index every time. */ smp = &((salitem_T *)gap->ga_data)[gap->ga_len]; - if ((p = alloc(1)) == NULL) - return SP_OTHERERROR; + p = alloc(1); p[0] = NUL; smp->sm_lead = p; smp->sm_leadlen = 0; @@ -3132,8 +3124,6 @@ count_common_word ( hi = hash_lookup(&lp->sl_wordcount, p, hash); if (HASHITEM_EMPTY(hi)) { wc = (wordcount_T *)alloc((unsigned)(sizeof(wordcount_T) + STRLEN(p))); - if (wc == NULL) - return; STRCPY(wc->wc_word, p); wc->wc_count = count; hash_add_item(&lp->sl_wordcount, hi, wc->wc_word, hash); @@ -3290,24 +3280,14 @@ static int read_compound(FILE *fd, slang_T *slang, int len) if (enc_utf8) c += todo * 2; pat = alloc((unsigned)c); - if (pat == NULL) - return SP_OTHERERROR; /* We also need a list of all flags that can appear at the start and one * for all flags. */ cp = alloc(todo + 1); - if (cp == NULL) { - vim_free(pat); - return SP_OTHERERROR; - } slang->sl_compstartflags = cp; *cp = NUL; ap = alloc(todo + 1); - if (ap == NULL) { - vim_free(pat); - return SP_OTHERERROR; - } slang->sl_compallflags = ap; *ap = NUL; @@ -3542,8 +3522,6 @@ static int set_sofo(slang_T *lp, char_u *from, char_u *to) for (i = 0; i < 256; ++i) if (lp->sl_sal_first[i] > 0) { p = alloc(sizeof(int) * (lp->sl_sal_first[i] * 2 + 1)); - if (p == NULL) - return SP_OTHERERROR; ((int **)gap->ga_data)[i] = (int *)p; *(int *)p = 0; } @@ -3681,14 +3659,10 @@ spell_read_tree ( if (len > 0) { /* Allocate the byte array. */ bp = lalloc((long_u)len, TRUE); - if (bp == NULL) - return SP_OTHERERROR; *bytsp = bp; /* Allocate the index array. */ ip = (idx_T *)lalloc_clear((long_u)(len * sizeof(int)), TRUE); - if (ip == NULL) - return SP_OTHERERROR; *idxsp = ip; /* Recursively read the tree and store it in the array. */ @@ -7731,8 +7705,6 @@ static void spell_make_sugfile(spellinfo_T *spin, char_u *wfname) * Make the file name by changing ".spl" to ".sug". */ fname = alloc(MAXPATHL); - if (fname == NULL) - goto theend; vim_strncpy(fname, wfname, MAXPATHL - 1); len = (int)STRLEN(fname); fname[len - 2] = 'u'; @@ -8174,8 +8146,6 @@ mkspell ( incount = fcount - 1; wfname = alloc(MAXPATHL); - if (wfname == NULL) - return; if (fcount >= 1) { len = (int)STRLEN(fnames[0]); @@ -8227,8 +8197,6 @@ mkspell ( } fname = alloc(MAXPATHL); - if (fname == NULL) - goto theend; /* * Init the aff and dic pointers. @@ -8439,8 +8407,6 @@ spell_add_word ( return; } fnamebuf = alloc(MAXPATHL); - if (fnamebuf == NULL) - return; for (spf = curwin->w_s->b_p_spf, i = 1; *spf != NUL; ++i) { copy_option_part(&spf, fnamebuf, MAXPATHL, ","); @@ -8562,8 +8528,6 @@ static void init_spellfile(void) if (*curwin->w_s->b_p_spl != NUL && curwin->w_s->b_langp.ga_len > 0) { buf = alloc(MAXPATHL); - if (buf == NULL) - return; /* Find the end of the language name. Exclude the region. If there * is a path separator remember the start of the tail. */ @@ -9235,24 +9199,22 @@ void spell_suggest(int count) /* Replace the word. */ p = alloc((unsigned)STRLEN(line) - stp->st_orglen + stp->st_wordlen + 1); - if (p != NULL) { - c = (int)(sug.su_badptr - line); - memmove(p, line, c); - STRCPY(p + c, stp->st_word); - STRCAT(p, sug.su_badptr + stp->st_orglen); - ml_replace(curwin->w_cursor.lnum, p, FALSE); - curwin->w_cursor.col = c; - - /* For redo we use a change-word command. */ - ResetRedobuff(); - AppendToRedobuff((char_u *)"ciw"); - AppendToRedobuffLit(p + c, - stp->st_wordlen + sug.su_badlen - stp->st_orglen); - AppendCharToRedobuff(ESC); - - /* After this "p" may be invalid. */ - changed_bytes(curwin->w_cursor.lnum, c); - } + c = (int)(sug.su_badptr - line); + memmove(p, line, c); + STRCPY(p + c, stp->st_word); + STRCAT(p, sug.su_badptr + stp->st_orglen); + ml_replace(curwin->w_cursor.lnum, p, FALSE); + curwin->w_cursor.col = c; + + /* For redo we use a change-word command. */ + ResetRedobuff(); + AppendToRedobuff((char_u *)"ciw"); + AppendToRedobuffLit(p + c, + stp->st_wordlen + sug.su_badlen - stp->st_orglen); + AppendCharToRedobuff(ESC); + + /* After this "p" may be invalid. */ + changed_bytes(curwin->w_cursor.lnum, c); } else curwin->w_cursor = prev_cursor; @@ -9341,8 +9303,6 @@ void ex_spellrepall(exarg_T *eap) addlen = (int)(STRLEN(repl_to) - STRLEN(repl_from)); frompat = alloc((unsigned)STRLEN(repl_from) + 7); - if (frompat == NULL) - return; sprintf((char *)frompat, "\\V\\<%s\\>", repl_from); p_ws = FALSE; @@ -9360,8 +9320,6 @@ void ex_spellrepall(exarg_T *eap) if (addlen <= 0 || STRNCMP(line + curwin->w_cursor.col, repl_to, STRLEN(repl_to)) != 0) { p = alloc((unsigned)STRLEN(line) + addlen + 1); - if (p == NULL) - break; memmove(p, line, curwin->w_cursor.col); STRCPY(p + curwin->w_cursor.col, repl_to); STRCAT(p, line + curwin->w_cursor.col + STRLEN(repl_from)); @@ -9417,8 +9375,6 @@ spell_suggest_list ( * replaced part. */ wcopy = alloc(stp->st_wordlen + (unsigned)STRLEN(sug.su_badptr + stp->st_orglen) + 1); - if (wcopy == NULL) - break; STRCPY(wcopy, stp->st_word); STRCPY(wcopy + stp->st_wordlen, sug.su_badptr + stp->st_orglen); ((char_u **)gap->ga_data)[gap->ga_len++] = wcopy; @@ -11864,11 +11820,9 @@ add_sound_suggest ( if (HASHITEM_EMPTY(hi)) { sft = (sftword_T *)alloc((unsigned)(sizeof(sftword_T) + STRLEN(goodword))); - if (sft != NULL) { - sft->sft_score = score; - STRCPY(sft->sft_word, goodword); - hash_add_item(&slang->sl_sounddone, hi, sft->sft_word, hash); - } + sft->sft_score = score; + STRCPY(sft->sft_word, goodword); + hash_add_item(&slang->sl_sounddone, hi, sft->sft_word, hash); } else { sft = HI2SFT(hi); if (score >= sft->sft_score) @@ -12142,8 +12096,6 @@ static void set_map_str(slang_T *lp, char_u *map) hashitem_T *hi; b = alloc((unsigned)(cl + headcl + 2)); - if (b == NULL) - return; mb_char2bytes(c, b); b[cl] = NUL; mb_char2bytes(headc, b + cl + 1); @@ -13370,8 +13322,6 @@ static int spell_edit_score(slang_T *slang, char_u *badword, char_u *goodword) #define CNT(a, b) cnt[(a) + (b) * (badlen + 1)] cnt = (int *)lalloc((long_u)(sizeof(int) * (badlen + 1) * (goodlen + 1)), TRUE); - if (cnt == NULL) - return 0; /* out of memory */ CNT(0, 0) = 0; for (j = 1; j <= goodlen; ++j) diff --git a/src/syntax.c b/src/syntax.c index 453ee49e4b..b1b5a80087 100644 --- a/src/syntax.c +++ b/src/syntax.c @@ -1123,8 +1123,6 @@ static void syn_stack_alloc(void) } sstp = (synstate_T *)alloc_clear((unsigned)(len * sizeof(synstate_T))); - if (sstp == NULL) /* out of memory! */ - return; to = sstp - 1; if (syn_block->b_sst_array != NULL) { @@ -3936,8 +3934,6 @@ add_keyword ( else name_ic = name; kp = (keyentry_T *)alloc((int)(sizeof(keyentry_T) + STRLEN(name_ic))); - if (kp == NULL) - return; STRCPY(kp->keyword, name_ic); kp->k_syn.id = id; kp->k_syn.inc_tag = current_syn_inc_tag; @@ -4160,12 +4156,10 @@ static void syn_incl_toplevel(int id, int *flagsp) short *grp_list = (short *)alloc((unsigned)(2 * sizeof(short))); int tlg_id = curwin->w_s->b_syn_topgrp - SYNID_CLUSTER; - if (grp_list != NULL) { - grp_list[0] = id; - grp_list[1] = 0; - syn_combine_list(&SYN_CLSTR(curwin->w_s)[tlg_id].scl_list, &grp_list, - CLUSTER_ADD); - } + grp_list[0] = id; + grp_list[1] = 0; + syn_combine_list(&SYN_CLSTR(curwin->w_s)[tlg_id].scl_list, &grp_list, + CLUSTER_ADD); } } @@ -4261,77 +4255,75 @@ static void syn_cmd_keyword(exarg_T *eap, int syncing) if (syn_id != 0) /* allocate a buffer, for removing backslashes in the keyword */ keyword_copy = alloc((unsigned)STRLEN(rest) + 1); - if (keyword_copy != NULL) { - syn_opt_arg.flags = 0; - syn_opt_arg.keyword = TRUE; - syn_opt_arg.sync_idx = NULL; - syn_opt_arg.has_cont_list = FALSE; - syn_opt_arg.cont_in_list = NULL; - syn_opt_arg.next_list = NULL; + syn_opt_arg.flags = 0; + syn_opt_arg.keyword = TRUE; + syn_opt_arg.sync_idx = NULL; + syn_opt_arg.has_cont_list = FALSE; + syn_opt_arg.cont_in_list = NULL; + syn_opt_arg.next_list = NULL; - /* - * The options given apply to ALL keywords, so all options must be - * found before keywords can be created. - * 1: collect the options and copy the keywords to keyword_copy. - */ - cnt = 0; - p = keyword_copy; - for (; rest != NULL && !ends_excmd(*rest); rest = skipwhite(rest)) { - rest = get_syn_options(rest, &syn_opt_arg, &conceal_char); - if (rest == NULL || ends_excmd(*rest)) - break; - /* Copy the keyword, removing backslashes, and add a NUL. */ - while (*rest != NUL && !vim_iswhite(*rest)) { - if (*rest == '\\' && rest[1] != NUL) - ++rest; - *p++ = *rest++; - } - *p++ = NUL; - ++cnt; + /* + * The options given apply to ALL keywords, so all options must be + * found before keywords can be created. + * 1: collect the options and copy the keywords to keyword_copy. + */ + cnt = 0; + p = keyword_copy; + for (; rest != NULL && !ends_excmd(*rest); rest = skipwhite(rest)) { + rest = get_syn_options(rest, &syn_opt_arg, &conceal_char); + if (rest == NULL || ends_excmd(*rest)) + break; + /* Copy the keyword, removing backslashes, and add a NUL. */ + while (*rest != NUL && !vim_iswhite(*rest)) { + if (*rest == '\\' && rest[1] != NUL) + ++rest; + *p++ = *rest++; } + *p++ = NUL; + ++cnt; + } - if (!eap->skip) { - /* Adjust flags for use of ":syn include". */ - syn_incl_toplevel(syn_id, &syn_opt_arg.flags); + if (!eap->skip) { + /* Adjust flags for use of ":syn include". */ + syn_incl_toplevel(syn_id, &syn_opt_arg.flags); - /* - * 2: Add an entry for each keyword. - */ - for (kw = keyword_copy; --cnt >= 0; kw += STRLEN(kw) + 1) { - for (p = vim_strchr(kw, '[');; ) { - if (p != NULL) - *p = NUL; - add_keyword(kw, syn_id, syn_opt_arg.flags, - syn_opt_arg.cont_in_list, - syn_opt_arg.next_list, conceal_char); - if (p == NULL) - break; - if (p[1] == NUL) { - EMSG2(_("E789: Missing ']': %s"), kw); - kw = p + 2; /* skip over the NUL */ - break; - } - if (p[1] == ']') { - kw = p + 1; /* skip over the "]" */ - break; - } - if (has_mbyte) { - int l = (*mb_ptr2len)(p + 1); + /* + * 2: Add an entry for each keyword. + */ + for (kw = keyword_copy; --cnt >= 0; kw += STRLEN(kw) + 1) { + for (p = vim_strchr(kw, '[');; ) { + if (p != NULL) + *p = NUL; + add_keyword(kw, syn_id, syn_opt_arg.flags, + syn_opt_arg.cont_in_list, + syn_opt_arg.next_list, conceal_char); + if (p == NULL) + break; + if (p[1] == NUL) { + EMSG2(_("E789: Missing ']': %s"), kw); + kw = p + 2; /* skip over the NUL */ + break; + } + if (p[1] == ']') { + kw = p + 1; /* skip over the "]" */ + break; + } + if (has_mbyte) { + int l = (*mb_ptr2len)(p + 1); - memmove(p, p + 1, l); - p += l; - } else { - p[0] = p[1]; - ++p; - } + memmove(p, p + 1, l); + p += l; + } else { + p[0] = p[1]; + ++p; } } } - - vim_free(keyword_copy); - vim_free(syn_opt_arg.cont_in_list); - vim_free(syn_opt_arg.next_list); } + + vim_free(keyword_copy); + vim_free(syn_opt_arg.cont_in_list); + vim_free(syn_opt_arg.next_list); } if (rest != NULL) @@ -4563,17 +4555,9 @@ syn_cmd_region ( * used from end to start). */ ppp = (struct pat_ptr *)alloc((unsigned)sizeof(struct pat_ptr)); - if (ppp == NULL) { - rest = NULL; - break; - } ppp->pp_next = pat_ptrs[item]; pat_ptrs[item] = ppp; ppp->pp_synp = (synpat_T *)alloc_clear((unsigned)sizeof(synpat_T)); - if (ppp->pp_synp == NULL) { - rest = NULL; - break; - } /* * Get the syntax pattern and the following offset(s). @@ -4796,8 +4780,6 @@ static void syn_combine_list(short **clstr1, short **clstr2, int list_op) break; } clstr = (short *)alloc((unsigned)((count + 1) * sizeof(short))); - if (clstr == NULL) - break; clstr[count] = 0; } } @@ -5260,10 +5242,6 @@ get_id_list ( for (end = p; *end && !vim_iswhite(*end) && *end != ','; ++end) ; name = alloc((int)(end - p + 3)); /* leave room for "^$" */ - if (name == NULL) { - failed = TRUE; - break; - } vim_strncpy(name + 1, p, end - p); if ( STRCMP(name + 1, "ALLBUT") == 0 || STRCMP(name + 1, "ALL") == 0 @@ -5358,8 +5336,6 @@ get_id_list ( break; if (round == 1) { retval = (short *)alloc((unsigned)((count + 1) * sizeof(short))); - if (retval == NULL) - break; retval[count] = 0; /* zero means end of the list */ total_count = count; } @@ -5395,8 +5371,7 @@ static short *copy_id_list(short *list) ; len = (count + 1) * sizeof(short); retval = (short *)alloc((unsigned)len); - if (retval != NULL) - memmove(retval, list, (size_t)len); + memmove(retval, list, (size_t)len); return retval; } @@ -6208,12 +6183,11 @@ int load_colors(char_u *name) recursive = TRUE; buf = alloc((unsigned)(STRLEN(name) + 12)); - if (buf != NULL) { - sprintf((char *)buf, "colors/%s.vim", name); - retval = source_runtime(buf, FALSE); - vim_free(buf); - apply_autocmds(EVENT_COLORSCHEME, name, curbuf->b_fname, FALSE, curbuf); - } + sprintf((char *)buf, "colors/%s.vim", name); + retval = source_runtime(buf, FALSE); + vim_free(buf); + apply_autocmds(EVENT_COLORSCHEME, name, curbuf->b_fname, FALSE, curbuf); + recursive = FALSE; return retval; @@ -685,13 +685,6 @@ do_tag ( fname = alloc(MAXPATHL + 1); cmd = alloc(CMDBUFFSIZE + 1); list = list_alloc(); - if (list == NULL || fname == NULL || cmd == NULL) { - vim_free(cmd); - vim_free(fname); - if (list != NULL) - list_free(list, TRUE); - goto end_do_tag; - } for (i = 0; i < num_matches; ++i) { int len, cmd_len; @@ -1203,11 +1196,6 @@ find_tags ( for (mtt = 0; mtt < MT_COUNT; ++mtt) ga_init(&ga_match[mtt], (int)sizeof(struct match_found *), 100); - /* check for out of memory situation */ - if (lbuf == NULL || tag_fname == NULL - ) - goto findtag_end; - STRCPY(tag_fname, "from cscope"); /* for error messages */ /* @@ -1838,21 +1826,20 @@ parse_line: mfp = (struct match_found *) alloc((int)sizeof(struct match_found) + len + 10 + ML_EXTRA); - if (mfp != NULL) { - /* "len" includes the language and the NUL, but - * not the priority. */ - mfp->len = len + ML_EXTRA + 1; + /* "len" includes the language and the NUL, but + * not the priority. */ + mfp->len = len + ML_EXTRA + 1; #define ML_HELP_LEN 6 - p = mfp->match; - STRCPY(p, tagp.tagname); - p[len] = '@'; - STRCPY(p + len + 1, help_lang); - sprintf((char *)p + len + 1 + ML_EXTRA, "%06d", - help_heuristic(tagp.tagname, - match_re ? matchoff : 0, !match_no_ic) - + help_pri - ); - } + p = mfp->match; + STRCPY(p, tagp.tagname); + p[len] = '@'; + STRCPY(p + len + 1, help_lang); + sprintf((char *)p + len + 1 + ML_EXTRA, "%06d", + help_heuristic(tagp.tagname, + match_re ? matchoff : 0, !match_no_ic) + + help_pri + ); + *tagp.tagname_end = TAB; } else if (name_only) { if (get_it_again) { @@ -1868,11 +1855,9 @@ parse_line: len = (int)(temp_end - tagp.command - 2); mfp = (struct match_found *)alloc( (int)sizeof(struct match_found) + len); - if (mfp != NULL) { - mfp->len = len + 1; /* include the NUL */ - p = mfp->match; - vim_strncpy(p, tagp.command + 2, len); - } + mfp->len = len + 1; /* include the NUL */ + p = mfp->match; + vim_strncpy(p, tagp.command + 2, len); } else mfp = NULL; get_it_again = FALSE; @@ -1880,11 +1865,9 @@ parse_line: len = (int)(tagp.tagname_end - tagp.tagname); mfp = (struct match_found *)alloc( (int)sizeof(struct match_found) + len); - if (mfp != NULL) { - mfp->len = len + 1; /* include the NUL */ - p = mfp->match; - vim_strncpy(p, tagp.tagname, len); - } + mfp->len = len + 1; /* include the NUL */ + p = mfp->match; + vim_strncpy(p, tagp.tagname, len); /* if wanted, re-read line to get long form too */ if (State & INSERT) @@ -1900,19 +1883,17 @@ parse_line: + (int)STRLEN(lbuf) + 3; mfp = (struct match_found *)alloc( (int)sizeof(struct match_found) + len); - if (mfp != NULL) { - mfp->len = len; - p = mfp->match; - p[0] = mtt; - STRCPY(p + 1, tag_fname); + mfp->len = len; + p = mfp->match; + p[0] = mtt; + STRCPY(p + 1, tag_fname); #ifdef BACKSLASH_IN_FILENAME - /* Ignore differences in slashes, avoid adding - * both path/file and path\file. */ - slash_adjust(p + 1); + /* Ignore differences in slashes, avoid adding + * both path/file and path\file. */ + slash_adjust(p + 1); #endif - s = p + 1 + STRLEN(tag_fname) + 1; - STRCPY(s, lbuf); - } + s = p + 1 + STRLEN(tag_fname) + 1; + STRCPY(s, lbuf); } if (mfp != NULL) { @@ -2414,7 +2395,7 @@ jumpto_tag ( pbuf = alloc(LSIZE); /* parse the match line into the tagp structure */ - if (pbuf == NULL || parse_match(lbuf, &tagp) == FAIL) { + if (parse_match(lbuf, &tagp) == FAIL) { tagp.fname_end = NULL; goto erret; } @@ -2705,15 +2686,13 @@ static char_u *expand_tag_fname(char_u *fname, char_u *tag_fname, int expand) && !vim_isAbsName(fname) && (p = path_tail(tag_fname)) != tag_fname) { retval = alloc(MAXPATHL); - if (retval != NULL) { - STRCPY(retval, tag_fname); - vim_strncpy(retval + (p - tag_fname), fname, - MAXPATHL - (p - tag_fname) - 1); - /* - * Translate names like "src/a/../b/file.c" into "src/b/file.c". - */ - simplify_filename(retval); - } + STRCPY(retval, tag_fname); + vim_strncpy(retval + (p - tag_fname), fname, + MAXPATHL - (p - tag_fname) - 1); + /* + * Translate names like "src/a/../b/file.c" into "src/b/file.c". + */ + simplify_filename(retval); } else retval = vim_strsave(fname); @@ -2859,8 +2838,6 @@ add_tag_field ( return FAIL; } buf = alloc(MAXPATHL); - if (buf == NULL) - return FAIL; if (start != NULL) { if (end == NULL) { end = start + STRLEN(start); diff --git a/src/term.c b/src/term.c index dbba313f02..0cf3da9740 100644 --- a/src/term.c +++ b/src/term.c @@ -3026,10 +3026,6 @@ void add_termcode(char_u *name, char_u *string, int flags) tc_max_len += 20; new_tc = (struct termcode *)alloc( (unsigned)(tc_max_len * sizeof(struct termcode))); - if (new_tc == NULL) { - tc_max_len -= 20; - return; - } for (i = 0; i < tc_len; ++i) new_tc[i] = termcodes[i]; vim_free(termcodes); @@ -4206,10 +4202,6 @@ replace_termcodes ( * replaced by 6 bytes (shifted special key), plus a NUL at the end. */ result = alloc((unsigned)STRLEN(from) * 6 + 1); - if (result == NULL) { /* out of memory */ - *bufp = NULL; - return from; - } src = from; @@ -4416,8 +4408,6 @@ void show_termcodes(void) if (tc_len == 0) /* no terminal codes (must be GUI) */ return; items = (int *)alloc((unsigned)(sizeof(int) * tc_len)); - if (items == NULL) - return; /* Highlight title */ MSG_PUTS_TITLE(_("\n--- Terminal keys ---")); @@ -81,17 +81,15 @@ void ui_inchar_undo(char_u *s, int len) if (ta_str != NULL) newlen += ta_len - ta_off; new = alloc(newlen); - if (new != NULL) { - if (ta_str != NULL) { - memmove(new, ta_str + ta_off, (size_t)(ta_len - ta_off)); - memmove(new + ta_len - ta_off, s, (size_t)len); - vim_free(ta_str); - } else - memmove(new, s, (size_t)len); - ta_str = new; - ta_len = newlen; - ta_off = 0; - } + if (ta_str != NULL) { + memmove(new, ta_str + ta_off, (size_t)(ta_len - ta_off)); + memmove(new + ta_len - ta_off, s, (size_t)len); + vim_free(ta_str); + } else + memmove(new, s, (size_t)len); + ta_str = new; + ta_len = newlen; + ta_off = 0; } #endif @@ -317,13 +315,12 @@ char_u *get_input_buf(void) /* We use a growarray to store the data pointer and the length. */ gap = (garray_T *)alloc((unsigned)sizeof(garray_T)); - if (gap != NULL) { - /* Add one to avoid a zero size. */ - gap->ga_data = alloc((unsigned)inbufcount + 1); - if (gap->ga_data != NULL) - memmove(gap->ga_data, inbuf, (size_t)inbufcount); - gap->ga_len = inbufcount; - } + /* Add one to avoid a zero size. */ + gap->ga_data = alloc((unsigned)inbufcount + 1); + if (gap->ga_data != NULL) + memmove(gap->ga_data, inbuf, (size_t)inbufcount); + gap->ga_len = inbufcount; + trash_input_buf(); return (char_u *)gap; } diff --git a/src/undo.c b/src/undo.c index 81da6f8bd8..454d59fbfc 100644 --- a/src/undo.c +++ b/src/undo.c @@ -404,8 +404,6 @@ int u_savecommon(linenr_T top, linenr_T bot, linenr_T newbot, int reload) * up the undo info when out of memory. */ uhp = (u_header_T *)U_ALLOC_LINE(sizeof(u_header_T)); - if (uhp == NULL) - goto nomem; #ifdef U_DEBUG uhp->uh_magic = UH_MAGIC; #endif @@ -572,8 +570,6 @@ int u_savecommon(linenr_T top, linenr_T bot, linenr_T newbot, int reload) * add lines in front of entry list */ uep = (u_entry_T *)U_ALLOC_LINE(sizeof(u_entry_T)); - if (uep == NULL) - goto nomem; memset(uep, 0, sizeof(u_entry_T)); #ifdef U_DEBUG uep->ue_magic = UE_MAGIC; @@ -595,11 +591,7 @@ int u_savecommon(linenr_T top, linenr_T bot, linenr_T newbot, int reload) } if (size > 0) { - if ((uep->ue_array = (char_u **)U_ALLOC_LINE( - sizeof(char_u *) * size)) == NULL) { - u_freeentry(uep, 0L); - goto nomem; - } + uep->ue_array = (char_u **)U_ALLOC_LINE(sizeof(char_u *) * size); for (i = 0, lnum = top + 1; i < size; ++i) { fast_breakcheck(); if (got_int) { @@ -778,8 +770,6 @@ static size_t fwrite_crypt(buf_T *buf, char_u *ptr, size_t len, FILE *fp) copy = small_buf; /* no malloc()/free() for short strings */ else { copy = lalloc(len, FALSE); - if (copy == NULL) - return 0; } crypt_encode(ptr, len, copy); i = fwrite(copy, len, (size_t)1, fp); @@ -912,8 +902,6 @@ static u_header_T *unserialize_uhp(FILE *fp, char_u *file_name) int error; uhp = (u_header_T *)U_ALLOC_LINE(sizeof(u_header_T)); - if (uhp == NULL) - return NULL; memset(uhp, 0, sizeof(u_header_T)); #ifdef U_DEBUG uhp->uh_magic = UH_MAGIC; @@ -1010,8 +998,6 @@ static u_entry_T *unserialize_uep(FILE *fp, int *error, char_u *file_name) int line_len; uep = (u_entry_T *)U_ALLOC_LINE(sizeof(u_entry_T)); - if (uep == NULL) - return NULL; memset(uep, 0, sizeof(u_entry_T)); #ifdef U_DEBUG uep->ue_magic = UE_MAGIC; @@ -1022,10 +1008,6 @@ static u_entry_T *unserialize_uep(FILE *fp, int *error, char_u *file_name) uep->ue_size = get4c(fp); if (uep->ue_size > 0) { array = (char_u **)U_ALLOC_LINE(sizeof(char_u *) * uep->ue_size); - if (array == NULL) { - *error = TRUE; - return uep; - } memset(array, 0, sizeof(char_u *) * uep->ue_size); } else array = NULL; @@ -1504,8 +1486,6 @@ void u_read_undo(char_u *name, char_u *hash, char_u *orig_name) if (num_head > 0) { uhp_table = (u_header_T **)U_ALLOC_LINE( num_head * sizeof(u_header_T *)); - if (uhp_table == NULL) - goto error; } while ((c = get2c(fp)) == UF_HEADER_MAGIC) { @@ -2141,20 +2121,7 @@ static void u_undoredo(int undo) /* delete the lines between top and bot and save them in newarray */ if (oldsize > 0) { - if ((newarray = (char_u **)U_ALLOC_LINE( - sizeof(char_u *) * oldsize)) == NULL) { - do_outofmem_msg((long_u)(sizeof(char_u *) * oldsize)); - /* - * We have messed up the entry list, repair is impossible. - * we have to free the rest of the list. - */ - while (uep != NULL) { - nuep = uep->ue_next; - u_freeentry(uep, uep->ue_size); - uep = nuep; - } - break; - } + newarray = (char_u **)U_ALLOC_LINE(sizeof(char_u *) * oldsize); /* delete backwards, it goes faster in most cases */ for (lnum = bot - 1, i = oldsize; --i >= 0; --lnum) { /* what can we do when we run out of memory? */ diff --git a/src/window.c b/src/window.c index dbf0bf06ac..f8927acb8b 100644 --- a/src/window.c +++ b/src/window.c @@ -2834,10 +2834,8 @@ static void new_frame(win_T *wp) frame_T *frp = (frame_T *)alloc_clear((unsigned)sizeof(frame_T)); wp->w_frame = frp; - if (frp != NULL) { - frp->fr_layout = FR_LEAF; - frp->fr_win = wp; - } + frp->fr_layout = FR_LEAF; + frp->fr_win = wp; } /* @@ -2861,8 +2859,6 @@ static tabpage_T *alloc_tabpage(void) tp = (tabpage_T *)alloc_clear((unsigned)sizeof(tabpage_T)); - if (tp == NULL) - return NULL; /* init t: variables */ tp->tp_vars = dict_alloc(); @@ -3596,8 +3592,6 @@ static win_T *win_alloc(win_T *after, int hidden) * allocate window structure and linesizes arrays */ new_wp = (win_T *)alloc_clear((unsigned)sizeof(win_T)); - if (new_wp == NULL) - return NULL; if (win_alloc_lines(new_wp) == FAIL) { vim_free(new_wp); @@ -5063,8 +5057,6 @@ void make_snapshot(int idx) static void make_snapshot_rec(frame_T *fr, frame_T **frp) { *frp = (frame_T *)alloc_clear((unsigned)sizeof(frame_T)); - if (*frp == NULL) - return; (*frp)->fr_layout = fr->fr_layout; (*frp)->fr_width = fr->fr_width; (*frp)->fr_height = fr->fr_height; |