commit 7673568311fd48da1f7f7c2b331a72a4c8744f83 from: Stefan Sperling date: Mon Apr 02 14:37:53 2018 UTC move diffreg's max_context into struct got_diff_state commit - d3f36e7e5a4e3424545f38223409b5a246de171a commit + 7673568311fd48da1f7f7c2b331a72a4c8744f83 blob - cb18b5a459b25b1db5f77fedf61b9ef8d48ac748 blob + 54204de96faa60b41cbc55abd7282fb2bd20eef5 --- lib/diffreg.c +++ lib/diffreg.c @@ -291,6 +291,7 @@ got_diffreg(int *rval, FILE *f1, FILE *f2, int flags, 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 @@ -966,7 +967,6 @@ change(FILE *outfile, struct got_diff_state *ds, struc 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: @@ -1013,14 +1013,16 @@ proceed: * 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 @@ -107,6 +107,7 @@ struct got_diff_state { int lastline; int lastmatchline; struct stat stb1, stb2; + size_t max_context; }; struct got_diff_args {