| 763 | } |
| 764 | |
| 765 | static int reuse_pseudo_merge_bitmap(struct bitmap_index *old_bitmap, |
| 766 | const uint32_t *mapping, |
| 767 | struct commit *merge, |
| 768 | struct ewah_bitmap **out) |
| 769 | { |
| 770 | struct ewah_bitmap *old; |
| 771 | struct bitmap *remapped; |
| 772 | |
| 773 | if (!old_bitmap || !mapping) |
| 774 | return 0; |
| 775 | |
| 776 | old = pseudo_merge_bitmap_for_commit(old_bitmap, merge); |
| 777 | if (!old) |
| 778 | return 0; |
| 779 | |
| 780 | remapped = bitmap_new(); |
| 781 | if (rebuild_bitmap(mapping, old, remapped) < 0) { |
| 782 | bitmap_free(remapped); |
| 783 | return 0; |
| 784 | } |
| 785 | |
| 786 | *out = bitmap_to_ewah(remapped); |
| 787 | bitmap_free(remapped); |
| 788 | reused_pseudo_merge_bitmaps_nr++; |
| 789 | return 1; |
| 790 | } |
| 791 | |
| 792 | static int build_pseudo_merge_bitmap(struct bitmap_writer *writer, |
| 793 | struct bitmap_index *old_bitmap, |
no test coverage detected