Skip to content

Commit 6df9f50

Browse files
committed
xdiff: make fields of xrecord_t Rust friendly
A few commits ago, we added definitions for Rust primitive types, to facilitate interoperability between C and Rust. Switch a few variables to use these types. Which, for now, will require adding some casts. Signed-off-by: Ezekiel Newren <[email protected]>
1 parent cc05150 commit 6df9f50

File tree

7 files changed

+21
-21
lines changed

7 files changed

+21
-21
lines changed

xdiff/xdiffi.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -418,7 +418,7 @@ static int get_indent(xrecord_t *rec)
418418
long i;
419419
int ret = 0;
420420

421-
for (i = 0; i < rec->size; i++) {
421+
for (i = 0; i < (long) rec->size; i++) {
422422
char c = rec->ptr[i];
423423

424424
if (!XDL_ISSPACE(c))
@@ -1005,11 +1005,11 @@ static void xdl_mark_ignorable_lines(xdchange_t *xscr, xdfenv_t *xe, long flags)
10051005

10061006
rec = &xe->xdf1.recs[xch->i1];
10071007
for (i = 0; i < xch->chg1 && ignore; i++)
1008-
ignore = xdl_blankline(rec[i]->ptr, rec[i]->size, flags);
1008+
ignore = xdl_blankline((const char*) rec[i]->ptr, rec[i]->size, flags);
10091009

10101010
rec = &xe->xdf2.recs[xch->i2];
10111011
for (i = 0; i < xch->chg2 && ignore; i++)
1012-
ignore = xdl_blankline(rec[i]->ptr, rec[i]->size, flags);
1012+
ignore = xdl_blankline((const char*)rec[i]->ptr, rec[i]->size, flags);
10131013

10141014
xch->ignore = ignore;
10151015
}
@@ -1020,7 +1020,7 @@ static int record_matches_regex(xrecord_t *rec, xpparam_t const *xpp) {
10201020
size_t i;
10211021

10221022
for (i = 0; i < xpp->ignore_regex_nr; i++)
1023-
if (!regexec_buf(xpp->ignore_regex[i], rec->ptr, rec->size, 1,
1023+
if (!regexec_buf(xpp->ignore_regex[i], (const char*) rec->ptr, rec->size, 1,
10241024
&regmatch, 0))
10251025
return 1;
10261026

xdiff/xemit.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424

2525
static long xdl_get_rec(xdfile_t *xdf, long ri, char const **rec) {
2626

27-
*rec = xdf->recs[ri]->ptr;
27+
*rec = (char const*) xdf->recs[ri]->ptr;
2828

2929
return xdf->recs[ri]->size;
3030
}

xdiff/xmerge.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -101,8 +101,8 @@ static int xdl_merge_cmp_lines(xdfenv_t *xe1, int i1, xdfenv_t *xe2, int i2,
101101
xrecord_t **rec2 = xe2->xdf2.recs + i2;
102102

103103
for (i = 0; i < line_count; i++) {
104-
int result = xdl_recmatch(rec1[i]->ptr, rec1[i]->size,
105-
rec2[i]->ptr, rec2[i]->size, flags);
104+
int result = xdl_recmatch((const char*) rec1[i]->ptr, rec1[i]->size,
105+
(const char*) rec2[i]->ptr, rec2[i]->size, flags);
106106
if (!result)
107107
return -1;
108108
}
@@ -324,8 +324,8 @@ static int xdl_fill_merge_buffer(xdfenv_t *xe1, const char *name1,
324324

325325
static int recmatch(xrecord_t *rec1, xrecord_t *rec2, unsigned long flags)
326326
{
327-
return xdl_recmatch(rec1->ptr, rec1->size,
328-
rec2->ptr, rec2->size, flags);
327+
return xdl_recmatch((char const*) rec1->ptr, rec1->size,
328+
(char const*) rec2->ptr, rec2->size, flags);
329329
}
330330

331331
/*
@@ -383,10 +383,10 @@ static int xdl_refine_conflicts(xdfenv_t *xe1, xdfenv_t *xe2, xdmerge_t *m,
383383
*/
384384
t1.ptr = (char *)xe1->xdf2.recs[m->i1]->ptr;
385385
t1.size = xe1->xdf2.recs[m->i1 + m->chg1 - 1]->ptr
386-
+ xe1->xdf2.recs[m->i1 + m->chg1 - 1]->size - t1.ptr;
386+
+ xe1->xdf2.recs[m->i1 + m->chg1 - 1]->size - (u8 const*) t1.ptr;
387387
t2.ptr = (char *)xe2->xdf2.recs[m->i2]->ptr;
388388
t2.size = xe2->xdf2.recs[m->i2 + m->chg2 - 1]->ptr
389-
+ xe2->xdf2.recs[m->i2 + m->chg2 - 1]->size - t2.ptr;
389+
+ xe2->xdf2.recs[m->i2 + m->chg2 - 1]->size - (u8 const*) t2.ptr;
390390
if (xdl_do_diff(&t1, &t2, xpp, &xe) < 0)
391391
return -1;
392392
if (xdl_change_compact(&xe.xdf1, &xe.xdf2, xpp->flags) < 0 ||
@@ -440,7 +440,7 @@ static int line_contains_alnum(const char *ptr, long size)
440440
static int lines_contain_alnum(xdfenv_t *xe, int i, int chg)
441441
{
442442
for (; chg; chg--, i++)
443-
if (line_contains_alnum(xe->xdf2.recs[i]->ptr,
443+
if (line_contains_alnum((char const*) xe->xdf2.recs[i]->ptr,
444444
xe->xdf2.recs[i]->size))
445445
return 1;
446446
return 0;

xdiff/xpatience.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ static void insert_record(xpparam_t const *xpp, int line, struct hashmap *map,
121121
return;
122122
map->entries[index].line1 = line;
123123
map->entries[index].hash = record->ha;
124-
map->entries[index].anchor = is_anchor(xpp, map->env->xdf1.recs[line - 1]->ptr);
124+
map->entries[index].anchor = is_anchor(xpp, (const char*) map->env->xdf1.recs[line - 1]->ptr);
125125
if (!map->first)
126126
map->first = map->entries + index;
127127
if (map->last) {

xdiff/xprepare.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,12 +96,12 @@ static int xdl_classify_record(unsigned int pass, xdlclassifier_t *cf, xrecord_t
9696
char const *line;
9797
xdlclass_t *rcrec;
9898

99-
line = rec->ptr;
99+
line = (char const*) rec->ptr;
100100
hi = (long) XDL_HASHLONG(rec->ha, cf->hbits);
101101
for (rcrec = cf->rchash[hi]; rcrec; rcrec = rcrec->next)
102102
if (rcrec->ha == rec->ha &&
103103
xdl_recmatch(rcrec->line, rcrec->size,
104-
rec->ptr, rec->size, cf->flags))
104+
(const char*) rec->ptr, rec->size, cf->flags))
105105
break;
106106

107107
if (!rcrec) {
@@ -159,7 +159,7 @@ static int xdl_prepare_ctx(unsigned int pass, mmfile_t *mf, long narec, xpparam_
159159
goto abort;
160160
if (!(crec = xdl_cha_alloc(&xdf->rcha)))
161161
goto abort;
162-
crec->ptr = prev;
162+
crec->ptr = (u8 const*) prev;
163163
crec->size = (long) (cur - prev);
164164
crec->ha = hav;
165165
recs[nrec++] = crec;

xdiff/xtypes.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,9 @@ typedef struct s_chastore {
3939
} chastore_t;
4040

4141
typedef struct s_xrecord {
42-
char const *ptr;
43-
long size;
44-
unsigned long ha;
42+
u8 const* ptr;
43+
usize size;
44+
u64 ha;
4545
} xrecord_t;
4646

4747
typedef struct s_xdfile {

xdiff/xutils.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -418,10 +418,10 @@ int xdl_fall_back_diff(xdfenv_t *diff_env, xpparam_t const *xpp,
418418

419419
subfile1.ptr = (char *)diff_env->xdf1.recs[line1 - 1]->ptr;
420420
subfile1.size = diff_env->xdf1.recs[line1 + count1 - 2]->ptr +
421-
diff_env->xdf1.recs[line1 + count1 - 2]->size - subfile1.ptr;
421+
diff_env->xdf1.recs[line1 + count1 - 2]->size - (u8 const*) subfile1.ptr;
422422
subfile2.ptr = (char *)diff_env->xdf2.recs[line2 - 1]->ptr;
423423
subfile2.size = diff_env->xdf2.recs[line2 + count2 - 2]->ptr +
424-
diff_env->xdf2.recs[line2 + count2 - 2]->size - subfile2.ptr;
424+
diff_env->xdf2.recs[line2 + count2 - 2]->size - (u8 const*) subfile2.ptr;
425425
if (xdl_do_diff(&subfile1, &subfile2, xpp, &env) < 0)
426426
return -1;
427427

0 commit comments

Comments
 (0)