xdiff: delete static forward declarations in xprepare

Move xdl_prepare_env() later in the file to avoid the need for static forward declarations. Best-viewed-with: --color-moved Signed-off-by: Ezekiel Newren <ezekielnewren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Ezekiel Newren committed Sep 26, 2025 at 22:41 UTC 43d5f52ac4a3b9cb6c5717af30be42a363fedf20
1 file changed +50 -66
xdiff/xprepare.c
+50 -66
@@ -53,21 +53,6 @@ typedef struct s_xdlclassifier {
53
54
55
56 -static int xdl_init_classifier(xdlclassifier_t *cf, long size, long flags);
57 -static void xdl_free_classifier(xdlclassifier_t *cf);
58 -static int xdl_classify_record(unsigned int pass, xdlclassifier_t *cf, xrecord_t **rhash,
59 - unsigned int hbits, xrecord_t *rec);
60 -static int xdl_prepare_ctx(unsigned int pass, mmfile_t *mf, long narec, xpparam_t const *xpp,
61 - xdlclassifier_t *cf, xdfile_t *xdf);
62 -static void xdl_free_ctx(xdfile_t *xdf);
63 -static int xdl_clean_mmatch(char const *dis, long i, long s, long e);
64 -static int xdl_cleanup_records(xdlclassifier_t *cf, xdfile_t *xdf1, xdfile_t *xdf2);
65 -static int xdl_trim_ends(xdfile_t *xdf1, xdfile_t *xdf2);
66 -static int xdl_optimize_ctxs(xdlclassifier_t *cf, xdfile_t *xdf1, xdfile_t *xdf2);
67 -
68 -
69 -
70 -
56 static int xdl_init_classifier(xdlclassifier_t *cf, long size, long flags) {
57 cf->flags = flags;
58
@@ -242,57 +227,6 @@ static void xdl_free_ctx(xdfile_t *xdf) {
227 }
228
229
245 -int xdl_prepare_env(mmfile_t *mf1, mmfile_t *mf2, xpparam_t const *xpp,
246 - xdfenv_t *xe) {
247 - long enl1, enl2, sample;
248 - xdlclassifier_t cf;
249 -
250 - memset(&cf, 0, sizeof(cf));
251 -
252 - /*
253 - * For histogram diff, we can afford a smaller sample size and
254 - * thus a poorer estimate of the number of lines, as the hash
255 - * table (rhash) won't be filled up/grown. The number of lines
256 - * (nrecs) will be updated correctly anyway by
257 - * xdl_prepare_ctx().
258 - */
259 - sample = (XDF_DIFF_ALG(xpp->flags) == XDF_HISTOGRAM_DIFF
260 - ? XDL_GUESS_NLINES2 : XDL_GUESS_NLINES1);
261 -
262 - enl1 = xdl_guess_lines(mf1, sample) + 1;
263 - enl2 = xdl_guess_lines(mf2, sample) + 1;
264 -
265 - if (xdl_init_classifier(&cf, enl1 + enl2 + 1, xpp->flags) < 0)
266 - return -1;
267 -
268 - if (xdl_prepare_ctx(1, mf1, enl1, xpp, &cf, &xe->xdf1) < 0) {
269 -
270 - xdl_free_classifier(&cf);
271 - return -1;
272 - }
273 - if (xdl_prepare_ctx(2, mf2, enl2, xpp, &cf, &xe->xdf2) < 0) {
274 -
275 - xdl_free_ctx(&xe->xdf1);
276 - xdl_free_classifier(&cf);
277 - return -1;
278 - }
279 -
280 - if ((XDF_DIFF_ALG(xpp->flags) != XDF_PATIENCE_DIFF) &&
281 - (XDF_DIFF_ALG(xpp->flags) != XDF_HISTOGRAM_DIFF) &&
282 - xdl_optimize_ctxs(&cf, &xe->xdf1, &xe->xdf2) < 0) {
283 -
284 - xdl_free_ctx(&xe->xdf2);
285 - xdl_free_ctx(&xe->xdf1);
286 - xdl_free_classifier(&cf);
287 - return -1;
288 - }
289 -
290 - xdl_free_classifier(&cf);
291 -
292 - return 0;
293 -}
294 -
295 -
230 void xdl_free_env(xdfenv_t *xe) {
231
232 xdl_free_ctx(&xe->xdf2);
@@ -460,3 +394,53 @@ static int xdl_optimize_ctxs(xdlclassifier_t *cf, xdfile_t *xdf1, xdfile_t *xdf2
394
395 return 0;
396 }
397 +
398 +int xdl_prepare_env(mmfile_t *mf1, mmfile_t *mf2, xpparam_t const *xpp,
399 + xdfenv_t *xe) {
400 + long enl1, enl2, sample;
401 + xdlclassifier_t cf;
402 +
403 + memset(&cf, 0, sizeof(cf));
404 +
405 + /*
406 + * For histogram diff, we can afford a smaller sample size and
407 + * thus a poorer estimate of the number of lines, as the hash
408 + * table (rhash) won't be filled up/grown. The number of lines
409 + * (nrecs) will be updated correctly anyway by
410 + * xdl_prepare_ctx().
411 + */
412 + sample = (XDF_DIFF_ALG(xpp->flags) == XDF_HISTOGRAM_DIFF
413 + ? XDL_GUESS_NLINES2 : XDL_GUESS_NLINES1);
414 +
415 + enl1 = xdl_guess_lines(mf1, sample) + 1;
416 + enl2 = xdl_guess_lines(mf2, sample) + 1;
417 +
418 + if (xdl_init_classifier(&cf, enl1 + enl2 + 1, xpp->flags) < 0)
419 + return -1;
420 +
421 + if (xdl_prepare_ctx(1, mf1, enl1, xpp, &cf, &xe->xdf1) < 0) {
422 +
423 + xdl_free_classifier(&cf);
424 + return -1;
425 + }
426 + if (xdl_prepare_ctx(2, mf2, enl2, xpp, &cf, &xe->xdf2) < 0) {
427 +
428 + xdl_free_ctx(&xe->xdf1);
429 + xdl_free_classifier(&cf);
430 + return -1;
431 + }
432 +
433 + if ((XDF_DIFF_ALG(xpp->flags) != XDF_PATIENCE_DIFF) &&
434 + (XDF_DIFF_ALG(xpp->flags) != XDF_HISTOGRAM_DIFF) &&
435 + xdl_optimize_ctxs(&cf, &xe->xdf1, &xe->xdf2) < 0) {
436 +
437 + xdl_free_ctx(&xe->xdf2);
438 + xdl_free_ctx(&xe->xdf1);
439 + xdl_free_classifier(&cf);
440 + return -1;
441 + }
442 +
443 + xdl_free_classifier(&cf);
444 +
445 + return 0;
446 +}