1
0
forked from aniani/vim

patch 9.1.0168: too many STRLEN() calls

Problem:  too many STRLEN() calls
Solution: Make use of ml_get_len() calls instead
          (John Marriott)

closes: #14123

Signed-off-by: John Marriott <basilisk@internode.on.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
John Marriott
2024-03-11 22:04:45 +01:00
committed by Christian Brabandt
parent 5cd86c6cff
commit bfcc895482
6 changed files with 19 additions and 17 deletions

View File

@@ -1056,7 +1056,7 @@ ins_char_bytes(char_u *buf, int charlen)
col = curwin->w_cursor.col; col = curwin->w_cursor.col;
oldp = ml_get(lnum); oldp = ml_get(lnum);
linelen = (int)STRLEN(oldp) + 1; linelen = (int)ml_get_len(lnum) + 1;
// The lengths default to the values for when not replacing. // The lengths default to the values for when not replacing.
oldlen = 0; oldlen = 0;
@@ -1193,7 +1193,7 @@ ins_str(char_u *s)
col = curwin->w_cursor.col; col = curwin->w_cursor.col;
oldp = ml_get(lnum); oldp = ml_get(lnum);
oldlen = (int)STRLEN(oldp); oldlen = (int)ml_get_len(lnum);
newp = alloc(oldlen + newlen + 1); newp = alloc(oldlen + newlen + 1);
if (newp == NULL) if (newp == NULL)
@@ -1272,7 +1272,7 @@ del_bytes(
int fixpos = fixpos_arg; int fixpos = fixpos_arg;
oldp = ml_get(lnum); oldp = ml_get(lnum);
oldlen = (int)STRLEN(oldp); oldlen = (int)ml_get_len(lnum);
// Can't do anything when the cursor is on the NUL after the line. // Can't do anything when the cursor is on the NUL after the line.
if (col >= oldlen) if (col >= oldlen)
@@ -1436,12 +1436,12 @@ open_line(
#endif #endif
// make a copy of the current line so we can mess with it // make a copy of the current line so we can mess with it
saved_line = vim_strsave(ml_get_curline()); saved_line = vim_strnsave(ml_get_curline(), ml_get_curline_len());
if (saved_line == NULL) // out of memory! if (saved_line == NULL) // out of memory!
return FALSE; return FALSE;
#ifdef FEAT_PROP_POPUP #ifdef FEAT_PROP_POPUP
at_eol = curwin->w_cursor.col >= (int)STRLEN(saved_line); at_eol = curwin->w_cursor.col >= (int)ml_get_curline_len();
#endif #endif
if (State & VREPLACE_FLAG) if (State & VREPLACE_FLAG)
@@ -1454,7 +1454,7 @@ open_line(
// the line, replacing what was there before and pushing the right // the line, replacing what was there before and pushing the right
// stuff onto the replace stack. -- webb. // stuff onto the replace stack. -- webb.
if (curwin->w_cursor.lnum < orig_line_count) if (curwin->w_cursor.lnum < orig_line_count)
next_line = vim_strsave(ml_get(curwin->w_cursor.lnum + 1)); next_line = vim_strnsave(ml_get(curwin->w_cursor.lnum + 1), ml_get_len(curwin->w_cursor.lnum + 1));
else else
next_line = vim_strsave((char_u *)""); next_line = vim_strsave((char_u *)"");
if (next_line == NULL) // out of memory! if (next_line == NULL) // out of memory!
@@ -2307,7 +2307,7 @@ open_line(
if (State & VREPLACE_FLAG) if (State & VREPLACE_FLAG)
{ {
// Put new line in p_extra // Put new line in p_extra
p_extra = vim_strsave(ml_get_curline()); p_extra = vim_strnsave(ml_get_curline(), ml_get_curline_len());
if (p_extra == NULL) if (p_extra == NULL)
goto theend; goto theend;
@@ -2352,7 +2352,7 @@ truncate_line(int fixpos)
newp = vim_strsave((char_u *)""); newp = vim_strsave((char_u *)"");
else else
newp = vim_strnsave(old_line, col); newp = vim_strnsave(old_line, col);
deleted = (int)STRLEN(old_line) - col; deleted = (int)ml_get_len(lnum) - col;
if (newp == NULL) if (newp == NULL)
return FAIL; return FAIL;

View File

@@ -4977,7 +4977,7 @@ ins_tab(void)
{ {
pos = curwin->w_cursor; pos = curwin->w_cursor;
cursor = &pos; cursor = &pos;
saved_line = vim_strsave(ml_get_curline()); saved_line = vim_strnsave(ml_get_curline(), ml_get_curline_len());
if (saved_line == NULL) if (saved_line == NULL)
return FALSE; return FALSE;
ptr = saved_line + pos.col; ptr = saved_line + pos.col;

View File

@@ -6468,7 +6468,7 @@ var2fpos(
if (charcol) if (charcol)
len = (long)mb_charlen(ml_get(pos.lnum)); len = (long)mb_charlen(ml_get(pos.lnum));
else else
len = (long)STRLEN(ml_get(pos.lnum)); len = (long)ml_get_len(pos.lnum);
// Get the column number // Get the column number
// We accept "$" for the column number: last column. // We accept "$" for the column number: last column.
@@ -6574,7 +6574,7 @@ var2fpos(
if (charcol) if (charcol)
pos.col = (colnr_T)mb_charlen(ml_get_curline()); pos.col = (colnr_T)mb_charlen(ml_get_curline());
else else
pos.col = (colnr_T)STRLEN(ml_get_curline()); pos.col = ml_get_curline_len();
} }
return &pos; return &pos;
} }

View File

@@ -3637,7 +3637,7 @@ get_col(typval_T *argvars, typval_T *rettv, int charcol)
{ {
// '> can be MAXCOL, get the length of the line then // '> can be MAXCOL, get the length of the line then
if (fp->lnum <= curbuf->b_ml.ml_line_count) if (fp->lnum <= curbuf->b_ml.ml_line_count)
col = (colnr_T)STRLEN(ml_get(fp->lnum)) + 1; col = ml_get_len(fp->lnum) + 1;
else else
col = MAXCOL; col = MAXCOL;
} }
@@ -11134,7 +11134,7 @@ f_synID(typval_T *argvars UNUSED, typval_T *rettv)
trans = (int)tv_get_bool_chk(&argvars[2], &transerr); trans = (int)tv_get_bool_chk(&argvars[2], &transerr);
if (!transerr && lnum >= 1 && lnum <= curbuf->b_ml.ml_line_count if (!transerr && lnum >= 1 && lnum <= curbuf->b_ml.ml_line_count
&& col >= 0 && col < (long)STRLEN(ml_get(lnum))) && col >= 0 && col < (long)ml_get_len(lnum))
id = syn_get_id(curwin, lnum, col, trans, NULL, FALSE); id = syn_get_id(curwin, lnum, col, trans, NULL, FALSE);
#endif #endif
@@ -11311,7 +11311,7 @@ f_synconcealed(typval_T *argvars UNUSED, typval_T *rettv)
if (rettv_list_alloc(rettv) == OK) if (rettv_list_alloc(rettv) == OK)
{ {
if (lnum >= 1 && lnum <= curbuf->b_ml.ml_line_count if (lnum >= 1 && lnum <= curbuf->b_ml.ml_line_count
&& col >= 0 && col <= (long)STRLEN(ml_get(lnum)) && col >= 0 && col <= (long)ml_get_len(lnum)
&& curwin->w_p_cole > 0) && curwin->w_p_cole > 0)
{ {
(void)syn_get_id(curwin, lnum, col, FALSE, NULL, FALSE); (void)syn_get_id(curwin, lnum, col, FALSE, NULL, FALSE);
@@ -11368,7 +11368,7 @@ f_synstack(typval_T *argvars UNUSED, typval_T *rettv)
col = (colnr_T)tv_get_number(&argvars[1]) - 1; // -1 on type error col = (colnr_T)tv_get_number(&argvars[1]) - 1; // -1 on type error
if (lnum >= 1 && lnum <= curbuf->b_ml.ml_line_count if (lnum >= 1 && lnum <= curbuf->b_ml.ml_line_count
&& col >= 0 && col <= (long)STRLEN(ml_get(lnum)) && col >= 0 && col <= (long)ml_get_len(lnum)
&& rettv_list_alloc(rettv) == OK) && rettv_list_alloc(rettv) == OK)
{ {
(void)syn_get_id(curwin, lnum, col, FALSE, NULL, TRUE); (void)syn_get_id(curwin, lnum, col, FALSE, NULL, TRUE);
@@ -11546,7 +11546,7 @@ f_virtcol(typval_T *argvars, typval_T *rettv)
fp->col = 0; fp->col = 0;
else else
{ {
len = (int)STRLEN(ml_get(fp->lnum)); len = (int)ml_get_len(fp->lnum);
if (fp->col > len) if (fp->col > len)
fp->col = len; fp->col = len;
} }

View File

@@ -3661,7 +3661,7 @@ ml_replace_len(
curbuf->b_ml.ml_line_ptr = line; curbuf->b_ml.ml_line_ptr = line;
curbuf->b_ml.ml_line_len = len; curbuf->b_ml.ml_line_len = len;
curbuf->b_ml.ml_line_textlen = len_arg + 1; curbuf->b_ml.ml_line_textlen = len_arg + !has_props;
curbuf->b_ml.ml_line_lnum = lnum; curbuf->b_ml.ml_line_lnum = lnum;
curbuf->b_ml.ml_flags = (curbuf->b_ml.ml_flags | ML_LINE_DIRTY) & ~ML_EMPTY; curbuf->b_ml.ml_flags = (curbuf->b_ml.ml_flags | ML_LINE_DIRTY) & ~ML_EMPTY;

View File

@@ -704,6 +704,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
168,
/**/ /**/
167, 167,
/**/ /**/