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:
committed by
Christian Brabandt
parent
5cd86c6cff
commit
bfcc895482
16
src/change.c
16
src/change.c
@@ -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;
|
||||||
|
@@ -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;
|
||||||
|
@@ -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;
|
||||||
}
|
}
|
||||||
|
@@ -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;
|
||||||
}
|
}
|
||||||
|
@@ -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;
|
||||||
|
|
||||||
|
@@ -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,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user