summaryrefslogtreecommitdiffstats
path: root/src/evalfunc.c
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2024-02-22 19:51:34 +0100
committerChristian Brabandt <cb@256bit.org>2024-02-22 19:51:34 +0100
commit5e3674b42da10b7e7c72d1f20f9a15379af1b60a (patch)
tree6e0ca6ba74b097a3cc51d0aaa50a46a919ee5122 /src/evalfunc.c
parent421b597470c118871c7081de00dd065e0e000b7e (diff)
patch 9.1.0127: Naming a non-pointer variable "oap" is strangev9.1.0127
Problem: Naming a non-pointer variable "oap" is strange. Solution: Rename it to "oa". Also prevent using freed memory in case of memory allocation failure. (zeertzjq) closes: #14075 Signed-off-by: zeertzjq <zeertzjq@outlook.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
Diffstat (limited to 'src/evalfunc.c')
-rw-r--r--src/evalfunc.c23
1 files changed, 12 insertions, 11 deletions
diff --git a/src/evalfunc.c b/src/evalfunc.c
index 981f8abedf..37010d7bad 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -5485,7 +5485,7 @@ block_def2str(struct block_def *bd)
f_getregion(typval_T *argvars, typval_T *rettv)
{
linenr_T lnum;
- oparg_T oap;
+ oparg_T oa;
struct block_def bd;
char_u *akt = NULL;
int inclusive = TRUE;
@@ -5584,16 +5584,16 @@ f_getregion(typval_T *argvars, typval_T *rettv)
getvvcol(curwin, &p1, &sc1, NULL, &ec1);
getvvcol(curwin, &p2, &sc2, NULL, &ec2);
- oap.motion_type = MBLOCK;
- oap.inclusive = TRUE;
- oap.op_type = OP_NOP;
- oap.start = p1;
- oap.end = p2;
- oap.start_vcol = MIN(sc1, sc2);
+ oa.motion_type = MBLOCK;
+ oa.inclusive = TRUE;
+ oa.op_type = OP_NOP;
+ oa.start = p1;
+ oa.end = p2;
+ oa.start_vcol = MIN(sc1, sc2);
if (*p_sel == 'e' && ec1 < sc2 && 0 < sc2 && ec2 > ec1)
- oap.end_vcol = sc2 - 1;
+ oa.end_vcol = sc2 - 1;
else
- oap.end_vcol = MAX(ec1, ec2);
+ oa.end_vcol = MAX(ec1, ec2);
}
// Include the trailing byte of a multi-byte char.
@@ -5609,7 +5609,7 @@ f_getregion(typval_T *argvars, typval_T *rettv)
akt = vim_strsave(ml_get(lnum));
else if (region_type == MBLOCK)
{
- block_prep(&oap, &bd, lnum, FALSE);
+ block_prep(&oa, &bd, lnum, FALSE);
akt = block_def2str(&bd);
}
else if (p1.lnum < lnum && lnum < p2.lnum)
@@ -5628,7 +5628,8 @@ f_getregion(typval_T *argvars, typval_T *rettv)
if (akt == NULL || ret == FAIL)
{
- list_free(rettv->vval.v_list);
+ clear_tv(rettv);
+ (void)rettv_list_alloc(rettv);
break;
}
}