summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Marriott <basilisk@internode.on.net>2024-03-11 22:04:45 +0100
committerChristian Brabandt <cb@256bit.org>2024-03-11 22:04:45 +0100
commitbfcc895482c717c9f6d86890d789ec739c3016b4 (patch)
tree56bf61a73afb69adbaacd00ba88fde013c98d8ce
parent5cd86c6cff94256ed2db872c46b57da259a648ac (diff)
patch 9.1.0168: too many STRLEN() callsv9.1.0168
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>
-rw-r--r--src/change.c16
-rw-r--r--src/edit.c2
-rw-r--r--src/eval.c4
-rw-r--r--src/evalfunc.c10
-rw-r--r--src/memline.c2
-rw-r--r--src/version.c2
6 files changed, 19 insertions, 17 deletions
diff --git a/src/change.c b/src/change.c
index 3af19b600c..daf4faed57 100644
--- a/src/change.c
+++ b/src/change.c
@@ -1056,7 +1056,7 @@ ins_char_bytes(char_u *buf, int charlen)
col = curwin->w_cursor.col;
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.
oldlen = 0;
@@ -1193,7 +1193,7 @@ ins_str(char_u *s)
col = curwin->w_cursor.col;
oldp = ml_get(lnum);
- oldlen = (int)STRLEN(oldp);
+ oldlen = (int)ml_get_len(lnum);
newp = alloc(oldlen + newlen + 1);
if (newp == NULL)
@@ -1272,7 +1272,7 @@ del_bytes(
int fixpos = fixpos_arg;
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.
if (col >= oldlen)
@@ -1436,12 +1436,12 @@ open_line(
#endif
// 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!
return FALSE;
#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
if (State & VREPLACE_FLAG)
@@ -1454,7 +1454,7 @@ open_line(
// the line, replacing what was there before and pushing the right
// stuff onto the replace stack. -- webb.
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
next_line = vim_strsave((char_u *)"");
if (next_line == NULL) // out of memory!
@@ -2307,7 +2307,7 @@ open_line(
if (State & VREPLACE_FLAG)
{
// 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)
goto theend;
@@ -2352,7 +2352,7 @@ truncate_line(int fixpos)
newp = vim_strsave((char_u *)"");
else
newp = vim_strnsave(old_line, col);
- deleted = (int)STRLEN(old_line) - col;
+ deleted = (int)ml_get_len(lnum) - col;
if (newp == NULL)
return FAIL;
diff --git a/src/edit.c b/src/edit.c
index 26853dce01..f700c6a12b 100644
--- a/src/edit.c
+++ b/src/edit.c
@@ -4977,7 +4977,7 @@ ins_tab(void)
{
pos = curwin->w_cursor;
cursor = &pos;
- saved_line = vim_strsave(ml_get_curline());
+ saved_line = vim_strnsave(ml_get_curline(), ml_get_curline_len());
if (saved_line == NULL)
return FALSE;
ptr = saved_line + pos.col;
diff --git a/src/eval.c b/src/eval.c
index ca5a2685fa..69b837402c 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -6468,7 +6468,7 @@ var2fpos(
if (charcol)
len = (long)mb_charlen(ml_get(pos.lnum));
else
- len = (long)STRLEN(ml_get(pos.lnum));
+ len = (long)ml_get_len(pos.lnum);
// Get the column number
// We accept "$" for the column number: last column.
@@ -6574,7 +6574,7 @@ var2fpos(
if (charcol)
pos.col = (colnr_T)mb_charlen(ml_get_curline());
else
- pos.col = (colnr_T)STRLEN(ml_get_curline());
+ pos.col = ml_get_curline_len();
}
return &pos;
}
diff --git a/src/evalfunc.c b/src/evalfunc.c
index eeee00d663..14650caf6b 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -3637,7 +3637,7 @@ get_col(typval_T *argvars, typval_T *rettv, int charcol)
{
// '> can be MAXCOL, get the length of the line then
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
col = MAXCOL;
}
@@ -11134,7 +11134,7 @@ f_synID(typval_T *argvars UNUSED, typval_T *rettv)
trans = (int)tv_get_bool_chk(&argvars[2], &transerr);
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);
#endif
@@ -11311,7 +11311,7 @@ f_synconcealed(typval_T *argvars UNUSED, typval_T *rettv)
if (rettv_list_alloc(rettv) == OK)
{
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)
{
(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
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)
{
(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;
else
{
- len = (int)STRLEN(ml_get(fp->lnum));
+ len = (int)ml_get_len(fp->lnum);
if (fp->col > len)
fp->col = len;
}
diff --git a/src/memline.c b/src/memline.c
index 99b9e9f2ea..5228155262 100644
--- a/src/memline.c
+++ b/src/memline.c
@@ -3661,7 +3661,7 @@ ml_replace_len(
curbuf->b_ml.ml_line_ptr = line;
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_flags = (curbuf->b_ml.ml_flags | ML_LINE_DIRTY) & ~ML_EMPTY;
diff --git a/src/version.c b/src/version.c
index 7279d7165d..55c9c9fdfa 100644
--- a/src/version.c
+++ b/src/version.c
@@ -705,6 +705,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 168,
+/**/
167,
/**/
166,