xdiff: use size_t for xrecord_t.size

size_t is the appropriate type because size is describing the number of elements, bytes in this case, in memory. Signed-off-by: Ezekiel Newren <ezekielnewren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Ezekiel Newren committed Nov 18, 2025 at 22:34 UTC 9bd193253c5e590203fc566ad7cff8f891ec0493
5 files changed +19 -20
xdiff/xdiffi.c
+3 -4
@@ -403,10 +403,9 @@ static int recs_match(xrecord_t *rec1, xrecord_t *rec2)
403 */
404 static int get_indent(xrecord_t *rec)
405 {
406 - long i;
406 int ret = 0;
407
409 - for (i = 0; i < rec->size; i++) {
408 + for (size_t i = 0; i < rec->size; i++) {
409 char c = (char) rec->ptr[i];
410
411 if (!XDL_ISSPACE(c))
@@ -993,11 +992,11 @@ static void xdl_mark_ignorable_lines(xdchange_t *xscr, xdfenv_t *xe, long flags)
992
993 rec = &xe->xdf1.recs[xch->i1];
994 for (i = 0; i < xch->chg1 && ignore; i++)
996 - ignore = xdl_blankline((const char *)rec[i].ptr, rec[i].size, flags);
995 + ignore = xdl_blankline((const char *)rec[i].ptr, (long)rec[i].size, flags);
996
997 rec = &xe->xdf2.recs[xch->i2];
998 for (i = 0; i < xch->chg2 && ignore; i++)
1000 - ignore = xdl_blankline((const char *)rec[i].ptr, rec[i].size, flags);
999 + ignore = xdl_blankline((const char *)rec[i].ptr, (long)rec[i].size, flags);
1000
1001 xch->ignore = ignore;
1002 }
xdiff/xemit.c
+4 -4
@@ -27,7 +27,7 @@ static int xdl_emit_record(xdfile_t *xdf, long ri, char const *pre, xdemitcb_t *
27 {
28 xrecord_t *rec = &xdf->recs[ri];
29
30 - if (xdl_emit_diffrec((char const *)rec->ptr, rec->size, pre, strlen(pre), ecb) < 0)
30 + if (xdl_emit_diffrec((char const *)rec->ptr, (long)rec->size, pre, strlen(pre), ecb) < 0)
31 return -1;
32
33 return 0;
@@ -113,8 +113,8 @@ static long match_func_rec(xdfile_t *xdf, xdemitconf_t const *xecfg, long ri,
113 xrecord_t *rec = &xdf->recs[ri];
114
115 if (!xecfg->find_func)
116 - return def_ff((const char *)rec->ptr, rec->size, buf, sz);
117 - return xecfg->find_func((const char *)rec->ptr, rec->size, buf, sz, xecfg->find_func_priv);
116 + return def_ff((const char *)rec->ptr, (long)rec->size, buf, sz);
117 + return xecfg->find_func((const char *)rec->ptr, (long)rec->size, buf, sz, xecfg->find_func_priv);
118 }
119
120 static int is_func_rec(xdfile_t *xdf, xdemitconf_t const *xecfg, long ri)
@@ -151,7 +151,7 @@ static long get_func_line(xdfenv_t *xe, xdemitconf_t const *xecfg,
151 static int is_empty_rec(xdfile_t *xdf, long ri)
152 {
153 xrecord_t *rec = &xdf->recs[ri];
154 - long i = 0;
154 + size_t i = 0;
155
156 for (; i < rec->size && XDL_ISSPACE(rec->ptr[i]); i++);
157
xdiff/xmerge.c
+8 -8
@@ -101,8 +101,8 @@ static int xdl_merge_cmp_lines(xdfenv_t *xe1, int i1, xdfenv_t *xe2, int i2,
101 xrecord_t *rec2 = xe2->xdf2.recs + i2;
102
103 for (i = 0; i < line_count; i++) {
104 - int result = xdl_recmatch((const char *)rec1[i].ptr, rec1[i].size,
105 - (const char *)rec2[i].ptr, rec2[i].size, flags);
104 + int result = xdl_recmatch((const char *)rec1[i].ptr, (long)rec1[i].size,
105 + (const char *)rec2[i].ptr, (long)rec2[i].size, flags);
106 if (!result)
107 return -1;
108 }
@@ -119,11 +119,11 @@ static int xdl_recs_copy_0(int use_orig, xdfenv_t *xe, int i, int count, int nee
119 if (count < 1)
120 return 0;
121
122 - for (i = 0; i < count; size += recs[i++].size)
122 + for (i = 0; i < count; size += (int)recs[i++].size)
123 if (dest)
124 memcpy(dest + size, recs[i].ptr, recs[i].size);
125 if (add_nl) {
126 - i = recs[count - 1].size;
126 + i = (int)recs[count - 1].size;
127 if (i == 0 || recs[count - 1].ptr[i - 1] != '\n') {
128 if (needs_cr) {
129 if (dest)
@@ -156,7 +156,7 @@ static int xdl_orig_copy(xdfenv_t *xe, int i, int count, int needs_cr, int add_n
156 */
157 static int is_eol_crlf(xdfile_t *file, int i)
158 {
159 - long size;
159 + size_t size;
160
161 if (i < file->nrec - 1)
162 /* All lines before the last *must* end in LF */
@@ -324,8 +324,8 @@ static int xdl_fill_merge_buffer(xdfenv_t *xe1, const char *name1,
324
325 static int recmatch(xrecord_t *rec1, xrecord_t *rec2, unsigned long flags)
326 {
327 - return xdl_recmatch((const char *)rec1->ptr, rec1->size,
328 - (const char *)rec2->ptr, rec2->size, flags);
327 + return xdl_recmatch((const char *)rec1->ptr, (long)rec1->size,
328 + (const char *)rec2->ptr, (long)rec2->size, flags);
329 }
330
331 /*
@@ -441,7 +441,7 @@ static int lines_contain_alnum(xdfenv_t *xe, int i, int chg)
441 {
442 for (; chg; chg--, i++)
443 if (line_contains_alnum((const char *)xe->xdf2.recs[i].ptr,
444 - xe->xdf2.recs[i].size))
444 + (long)xe->xdf2.recs[i].size))
445 return 1;
446 return 0;
447 }
xdiff/xprepare.c
+3 -3
@@ -99,8 +99,8 @@ static int xdl_classify_record(unsigned int pass, xdlclassifier_t *cf, xrecord_t
99 hi = (long) XDL_HASHLONG(rec->ha, cf->hbits);
100 for (rcrec = cf->rchash[hi]; rcrec; rcrec = rcrec->next)
101 if (rcrec->rec.ha == rec->ha &&
102 - xdl_recmatch((const char *)rcrec->rec.ptr, rcrec->rec.size,
103 - (const char *)rec->ptr, rec->size, cf->flags))
102 + xdl_recmatch((const char *)rcrec->rec.ptr, (long)rcrec->rec.size,
103 + (const char *)rec->ptr, (long)rec->size, cf->flags))
104 break;
105
106 if (!rcrec) {
@@ -157,7 +157,7 @@ static int xdl_prepare_ctx(unsigned int pass, mmfile_t *mf, long narec, xpparam_
157 goto abort;
158 crec = &xdf->recs[xdf->nrec++];
159 crec->ptr = (uint8_t const *)prev;
160 - crec->size = (long) (cur - prev);
160 + crec->size = cur - prev;
161 crec->ha = hav;
162 if (xdl_classify_record(pass, cf, crec) < 0)
163 goto abort;
xdiff/xtypes.h
+1 -1
@@ -40,7 +40,7 @@ typedef struct s_chastore {
40
41 typedef struct s_xrecord {
42 uint8_t const *ptr;
43 - long size;
43 + size_t size;
44 unsigned long ha;
45 } xrecord_t;
46