Skip to content

Commit f90a98a

Browse files
ezekielnewrengitster
authored andcommitted
xdiff: make xdfile_t.nrec a size_t instead of long
size_t is used because nrec describes the number of elements in memory for recs, and the number of elements in memory for 'changed' + 2. Signed-off-by: Ezekiel Newren <ezekielnewren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent 3b24175 commit f90a98a

File tree

6 files changed

+26
-26
lines changed

6 files changed

+26
-26
lines changed

xdiff/xdiffi.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -483,7 +483,7 @@ static void measure_split(const xdfile_t *xdf, long split,
483483
{
484484
long i;
485485

486-
if (split >= xdf->nrec) {
486+
if (split >= (long)xdf->nrec) {
487487
m->end_of_file = 1;
488488
m->indent = -1;
489489
} else {
@@ -506,7 +506,7 @@ static void measure_split(const xdfile_t *xdf, long split,
506506

507507
m->post_blank = 0;
508508
m->post_indent = -1;
509-
for (i = split + 1; i < xdf->nrec; i++) {
509+
for (i = split + 1; i < (long)xdf->nrec; i++) {
510510
m->post_indent = get_indent(&xdf->recs[i]);
511511
if (m->post_indent != -1)
512512
break;
@@ -717,7 +717,7 @@ static void group_init(xdfile_t *xdf, struct xdlgroup *g)
717717
*/
718718
static inline int group_next(xdfile_t *xdf, struct xdlgroup *g)
719719
{
720-
if (g->end == xdf->nrec)
720+
if (g->end == (long)xdf->nrec)
721721
return -1;
722722

723723
g->start = g->end + 1;
@@ -750,7 +750,7 @@ static inline int group_previous(xdfile_t *xdf, struct xdlgroup *g)
750750
*/
751751
static int group_slide_down(xdfile_t *xdf, struct xdlgroup *g)
752752
{
753-
if (g->end < xdf->nrec &&
753+
if (g->end < (long)xdf->nrec &&
754754
recs_match(&xdf->recs[g->start], &xdf->recs[g->end])) {
755755
xdf->changed[g->start++] = false;
756756
xdf->changed[g->end++] = true;

xdiff/xemit.c

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ static long get_func_line(xdfenv_t *xe, xdemitconf_t const *xecfg,
137137
buf = func_line ? func_line->buf : dummy;
138138
size = func_line ? sizeof(func_line->buf) : sizeof(dummy);
139139

140-
for (l = start; l != limit && 0 <= l && l < xe->xdf1.nrec; l += step) {
140+
for (l = start; l != limit && 0 <= l && l < (long)xe->xdf1.nrec; l += step) {
141141
long len = match_func_rec(&xe->xdf1, xecfg, l, buf, size);
142142
if (len >= 0) {
143143
if (func_line)
@@ -179,14 +179,14 @@ int xdl_emit_diff(xdfenv_t *xe, xdchange_t *xscr, xdemitcb_t *ecb,
179179
long fs1, i1 = xch->i1;
180180

181181
/* Appended chunk? */
182-
if (i1 >= xe->xdf1.nrec) {
182+
if (i1 >= (long)xe->xdf1.nrec) {
183183
long i2 = xch->i2;
184184

185185
/*
186186
* We don't need additional context if
187187
* a whole function was added.
188188
*/
189-
while (i2 < xe->xdf2.nrec) {
189+
while (i2 < (long)xe->xdf2.nrec) {
190190
if (is_func_rec(&xe->xdf2, xecfg, i2))
191191
goto post_context_calculation;
192192
i2++;
@@ -196,7 +196,7 @@ int xdl_emit_diff(xdfenv_t *xe, xdchange_t *xscr, xdemitcb_t *ecb,
196196
* Otherwise get more context from the
197197
* pre-image.
198198
*/
199-
i1 = xe->xdf1.nrec - 1;
199+
i1 = (long)xe->xdf1.nrec - 1;
200200
}
201201

202202
fs1 = get_func_line(xe, xecfg, NULL, i1, -1);
@@ -228,22 +228,22 @@ int xdl_emit_diff(xdfenv_t *xe, xdchange_t *xscr, xdemitcb_t *ecb,
228228

229229
post_context_calculation:
230230
lctx = xecfg->ctxlen;
231-
lctx = XDL_MIN(lctx, xe->xdf1.nrec - (xche->i1 + xche->chg1));
232-
lctx = XDL_MIN(lctx, xe->xdf2.nrec - (xche->i2 + xche->chg2));
231+
lctx = XDL_MIN(lctx, (long)xe->xdf1.nrec - (xche->i1 + xche->chg1));
232+
lctx = XDL_MIN(lctx, (long)xe->xdf2.nrec - (xche->i2 + xche->chg2));
233233

234234
e1 = xche->i1 + xche->chg1 + lctx;
235235
e2 = xche->i2 + xche->chg2 + lctx;
236236

237237
if (xecfg->flags & XDL_EMIT_FUNCCONTEXT) {
238238
long fe1 = get_func_line(xe, xecfg, NULL,
239239
xche->i1 + xche->chg1,
240-
xe->xdf1.nrec);
240+
(long)xe->xdf1.nrec);
241241
while (fe1 > 0 && is_empty_rec(&xe->xdf1, fe1 - 1))
242242
fe1--;
243243
if (fe1 < 0)
244-
fe1 = xe->xdf1.nrec;
244+
fe1 = (long)xe->xdf1.nrec;
245245
if (fe1 > e1) {
246-
e2 = XDL_MIN(e2 + (fe1 - e1), xe->xdf2.nrec);
246+
e2 = XDL_MIN(e2 + (fe1 - e1), (long)xe->xdf2.nrec);
247247
e1 = fe1;
248248
}
249249

@@ -254,7 +254,7 @@ int xdl_emit_diff(xdfenv_t *xe, xdchange_t *xscr, xdemitcb_t *ecb,
254254
*/
255255
if (xche->next) {
256256
long l = XDL_MIN(xche->next->i1,
257-
xe->xdf1.nrec - 1);
257+
(long)xe->xdf1.nrec - 1);
258258
if (l - xecfg->ctxlen <= e1 ||
259259
get_func_line(xe, xecfg, NULL, l, e1) < 0) {
260260
xche = xche->next;

xdiff/xmerge.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ static int is_eol_crlf(xdfile_t *file, int i)
158158
{
159159
size_t size;
160160

161-
if (i < file->nrec - 1)
161+
if (i < (long)file->nrec - 1)
162162
/* All lines before the last *must* end in LF */
163163
return (size = file->recs[i].size) > 1 &&
164164
file->recs[i].ptr[size - 2] == '\r';
@@ -317,7 +317,7 @@ static int xdl_fill_merge_buffer(xdfenv_t *xe1, const char *name1,
317317
continue;
318318
i = m->i1 + m->chg1;
319319
}
320-
size += xdl_recs_copy(xe1, i, xe1->xdf2.nrec - i, 0, 0,
320+
size += xdl_recs_copy(xe1, i, (int)xe1->xdf2.nrec - i, 0, 0,
321321
dest ? dest + size : NULL);
322322
return size;
323323
}
@@ -622,7 +622,7 @@ static int xdl_do_merge(xdfenv_t *xe1, xdchange_t *xscr1,
622622
changes = c;
623623
i0 = xscr1->i1;
624624
i1 = xscr1->i2;
625-
i2 = xscr1->i1 + xe2->xdf2.nrec - xe2->xdf1.nrec;
625+
i2 = xscr1->i1 + (long)xe2->xdf2.nrec - (long)xe2->xdf1.nrec;
626626
chg0 = xscr1->chg1;
627627
chg1 = xscr1->chg2;
628628
chg2 = xscr1->chg1;
@@ -637,7 +637,7 @@ static int xdl_do_merge(xdfenv_t *xe1, xdchange_t *xscr1,
637637
if (!changes)
638638
changes = c;
639639
i0 = xscr2->i1;
640-
i1 = xscr2->i1 + xe1->xdf2.nrec - xe1->xdf1.nrec;
640+
i1 = xscr2->i1 + (long)xe1->xdf2.nrec - (long)xe1->xdf1.nrec;
641641
i2 = xscr2->i2;
642642
chg0 = xscr2->chg1;
643643
chg1 = xscr2->chg1;

xdiff/xpatience.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -370,5 +370,5 @@ static int patience_diff(xpparam_t const *xpp, xdfenv_t *env,
370370

371371
int xdl_do_patience_diff(xpparam_t const *xpp, xdfenv_t *env)
372372
{
373-
return patience_diff(xpp, env, 1, env->xdf1.nrec, 1, env->xdf2.nrec);
373+
return patience_diff(xpp, env, 1, (int)env->xdf1.nrec, 1, (int)env->xdf2.nrec);
374374
}

xdiff/xprepare.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ static int xdl_prepare_ctx(unsigned int pass, mmfile_t *mf, long narec, xpparam_
153153
for (top = blk + bsize; cur < top; ) {
154154
prev = cur;
155155
hav = xdl_hash_record(&cur, top, xpp->flags);
156-
if (XDL_ALLOC_GROW(xdf->recs, xdf->nrec + 1, narec))
156+
if (XDL_ALLOC_GROW(xdf->recs, (long)xdf->nrec + 1, narec))
157157
goto abort;
158158
crec = &xdf->recs[xdf->nrec++];
159159
crec->ptr = prev;
@@ -287,15 +287,15 @@ static int xdl_cleanup_records(xdlclassifier_t *cf, xdfile_t *xdf1, xdfile_t *xd
287287
/*
288288
* Initialize temporary arrays with DISCARD, KEEP, or INVESTIGATE.
289289
*/
290-
if ((mlim = xdl_bogosqrt(xdf1->nrec)) > XDL_MAX_EQLIMIT)
290+
if ((mlim = xdl_bogosqrt((long)xdf1->nrec)) > XDL_MAX_EQLIMIT)
291291
mlim = XDL_MAX_EQLIMIT;
292292
for (i = xdf1->dstart, recs = &xdf1->recs[xdf1->dstart]; i <= xdf1->dend; i++, recs++) {
293293
rcrec = cf->rcrecs[recs->minimal_perfect_hash];
294294
nm = rcrec ? rcrec->len2 : 0;
295295
action1[i] = (nm == 0) ? DISCARD: (nm >= mlim && !need_min) ? INVESTIGATE: KEEP;
296296
}
297297

298-
if ((mlim = xdl_bogosqrt(xdf2->nrec)) > XDL_MAX_EQLIMIT)
298+
if ((mlim = xdl_bogosqrt((long)xdf2->nrec)) > XDL_MAX_EQLIMIT)
299299
mlim = XDL_MAX_EQLIMIT;
300300
for (i = xdf2->dstart, recs = &xdf2->recs[xdf2->dstart]; i <= xdf2->dend; i++, recs++) {
301301
rcrec = cf->rcrecs[recs->minimal_perfect_hash];
@@ -348,7 +348,7 @@ static int xdl_trim_ends(xdfile_t *xdf1, xdfile_t *xdf2) {
348348

349349
recs1 = xdf1->recs;
350350
recs2 = xdf2->recs;
351-
for (i = 0, lim = XDL_MIN(xdf1->nrec, xdf2->nrec); i < lim;
351+
for (i = 0, lim = (long)XDL_MIN(xdf1->nrec, xdf2->nrec); i < lim;
352352
i++, recs1++, recs2++)
353353
if (recs1->minimal_perfect_hash != recs2->minimal_perfect_hash)
354354
break;
@@ -361,8 +361,8 @@ static int xdl_trim_ends(xdfile_t *xdf1, xdfile_t *xdf2) {
361361
if (recs1->minimal_perfect_hash != recs2->minimal_perfect_hash)
362362
break;
363363

364-
xdf1->dend = xdf1->nrec - i - 1;
365-
xdf2->dend = xdf2->nrec - i - 1;
364+
xdf1->dend = (long)xdf1->nrec - i - 1;
365+
xdf2->dend = (long)xdf2->nrec - i - 1;
366366

367367
return 0;
368368
}

xdiff/xtypes.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ typedef struct s_xrecord {
4747

4848
typedef struct s_xdfile {
4949
xrecord_t *recs;
50-
long nrec;
50+
size_t nrec;
5151
bool *changed;
5252
long *rindex;
5353
long nreff;

0 commit comments

Comments
 (0)