Skip to content

Commit 45ef027

Browse files
committed
Merge branch 'ly/pack-bitmap-root-leakfix' into seen
* ly/pack-bitmap-root-leakfix: SQUASH??? t5333: test memory leak when use pseudo-merge in boundary traversal pack-bitmap: remove checks before bitmap_free
2 parents b9c0f0d + 0b5e6d0 commit 45ef027

File tree

2 files changed

+23
-2
lines changed

2 files changed

+23
-2
lines changed

pack-bitmap.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1369,8 +1369,8 @@ static struct bitmap *find_boundary_objects(struct bitmap_index *bitmap_git,
13691369
bitmap_set(roots_bitmap, pos);
13701370
}
13711371

1372-
if (!cascade_pseudo_merges_1(bitmap_git, cb.base, roots_bitmap))
1373-
bitmap_free(roots_bitmap);
1372+
cascade_pseudo_merges_1(bitmap_git, cb.base, roots_bitmap);
1373+
bitmap_free(roots_bitmap);
13741374
}
13751375

13761376
/*

t/t5333-pseudo-merge-bitmaps.sh

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -445,4 +445,25 @@ test_expect_success 'pseudo-merge closure' '
445445
)
446446
'
447447

448+
test_expect_success 'use pseudo-merge in boundary traversal' '
449+
git init pseudo-merge-boundary-traversal &&
450+
(
451+
cd pseudo-merge-boundary-traversal &&
452+
453+
git config bitmapPseudoMerge.test.pattern refs/ &&
454+
git config bitmapPseudoMerge.test.threshold now &&
455+
git config bitmapPseudoMerge.test.stableThreshold now &&
456+
GIT_TEST_PACK_USE_BITMAP_BOUNDARY_TRAVERSAL=1 &&
457+
export GIT_TEST_PACK_USE_BITMAP_BOUNDARY_TRAVERSAL &&
458+
459+
test_commit A &&
460+
git repack -adb &&
461+
test_commit B &&
462+
463+
echo '1' >expect &&
464+
git rev-list --count --use-bitmap-index HEAD~1..HEAD >actual &&
465+
test_cmp expect actual
466+
)
467+
'
468+
448469
test_done

0 commit comments

Comments
 (0)