commit - d3f36e7e5a4e3424545f38223409b5a246de171a
commit + 7673568311fd48da1f7f7c2b331a72a4c8744f83
blob - cb18b5a459b25b1db5f77fedf61b9ef8d48ac748
blob + 54204de96faa60b41cbc55abd7282fb2bd20eef5
--- lib/diffreg.c
+++ lib/diffreg.c
ds->lastline = 0;
ds->lastmatchline = 0;
ds->context_vec_ptr = ds->context_vec_start - 1;
+ ds->max_context = 64;
if (flags & D_IGNORECASE)
ds->chrtran = cup2low;
else
const char *file1, FILE *f1, const char *file2, FILE *f2,
int a, int b, int c, int d, int *pflags)
{
- static size_t max_context = 64;
int i;
restart:
* Allocate change records as needed.
*/
if (ds->context_vec_ptr == ds->context_vec_end - 1) {
- ptrdiff_t offset = ds->context_vec_ptr - ds->context_vec_start;
- max_context <<= 1;
+ ptrdiff_t offset;
+ offset = ds->context_vec_ptr - ds->context_vec_start;
+ ds->max_context <<= 1;
ds->context_vec_start =
- reallocarray(ds->context_vec_start, max_context,
+ reallocarray(ds->context_vec_start, ds->max_context,
sizeof(*ds->context_vec_start));
if (ds->context_vec_start == NULL)
return (-1);
- ds->context_vec_end = ds->context_vec_start + max_context;
+ ds->context_vec_end = ds->context_vec_start +
+ ds->max_context;
ds->context_vec_ptr = ds->context_vec_start + offset;
}
if (ds->anychange == 0) {
blob - d0351038fd1aa497adf26fcd0cc40fab666f7061
blob + ffaacf32c07bdd3d1ead6b93b60f8cddeb3a24a1
--- lib/got_lib_diff.h
+++ lib/got_lib_diff.h
int lastline;
int lastmatchline;
struct stat stb1, stb2;
+ size_t max_context;
};
struct got_diff_args {