Repository navigation
Commit 48679d2
committed
Address review: update offsets only after moving each entry
Restoring every offset after a failed repack() is wrong once an entry
has been moved over its old position: the restored offset then points
at overwritten data. Instead, set each entry's header_offset only
after its bytes have been copied, so entries that finished moving or
were never touched stay readable.
This also drops the list(removed) copy, which was only needed because
the rollback read removed a second time.1 parent 5f1fda3 commit 48679d2
2 files changed
Lines changed: 38 additions & 65 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2664 | 2664 | | |
2665 | 2665 | | |
2666 | 2666 | | |
2667 | | - | |
2668 | | - | |
2669 | | - | |
2670 | | - | |
2671 | | - | |
2672 | | - | |
2673 | | - | |
2674 | | - | |
2675 | | - | |
2676 | | - | |
2677 | | - | |
2678 | | - | |
2679 | | - | |
2680 | | - | |
2681 | | - | |
2682 | | - | |
2683 | | - | |
2684 | | - | |
2685 | | - | |
2686 | | - | |
2687 | | - | |
2688 | | - | |
| 2667 | + | |
| 2668 | + | |
| 2669 | + | |
| 2670 | + | |
2689 | 2671 | | |
2690 | 2672 | | |
2691 | 2673 | | |
| |||
2696 | 2678 | | |
2697 | 2679 | | |
2698 | 2680 | | |
2699 | | - | |
2700 | | - | |
2701 | | - | |
2702 | | - | |
2703 | | - | |
2704 | | - | |
2705 | | - | |
2706 | | - | |
2707 | | - | |
2708 | | - | |
2709 | | - | |
2710 | | - | |
2711 | | - | |
2712 | | - | |
2713 | | - | |
2714 | | - | |
2715 | | - | |
2716 | | - | |
2717 | | - | |
2718 | | - | |
2719 | | - | |
| 2681 | + | |
| 2682 | + | |
| 2683 | + | |
| 2684 | + | |
| 2685 | + | |
| 2686 | + | |
| 2687 | + | |
| 2688 | + | |
| 2689 | + | |
| 2690 | + | |
| 2691 | + | |
| 2692 | + | |
| 2693 | + | |
| 2694 | + | |
| 2695 | + | |
| 2696 | + | |
| 2697 | + | |
| 2698 | + | |
| 2699 | + | |
| 2700 | + | |
| 2701 | + | |
| 2702 | + | |
| 2703 | + | |
2720 | 2704 | | |
2721 | | - | |
2722 | | - | |
2723 | | - | |
2724 | | - | |
2725 | | - | |
2726 | | - | |
| 2705 | + | |
| 2706 | + | |
| 2707 | + | |
| 2708 | + | |
2727 | 2709 | | |
2728 | 2710 | | |
2729 | 2711 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1581 | 1581 | | |
1582 | 1582 | | |
1583 | 1583 | | |
1584 | | - | |
| 1584 | + | |
1585 | 1585 | | |
1586 | | - | |
| 1586 | + | |
1587 | 1587 | | |
1588 | 1588 | | |
1589 | 1589 | | |
1590 | 1590 | | |
1591 | 1591 | | |
1592 | | - | |
| 1592 | + | |
1593 | 1593 | | |
1594 | 1594 | | |
| 1595 | + | |
1595 | 1596 | | |
1596 | 1597 | | |
1597 | 1598 | | |
| |||
1601 | 1602 | | |
1602 | 1603 | | |
1603 | 1604 | | |
1604 | | - | |
| 1605 | + | |
1605 | 1606 | | |
1606 | 1607 | | |
1607 | 1608 | | |
| |||
1615 | 1616 | | |
1616 | 1617 | | |
1617 | 1618 | | |
1618 | | - | |
| 1619 | + | |
1619 | 1620 | | |
1620 | 1621 | | |
1621 | 1622 | | |
1622 | 1623 | | |
1623 | 1624 | | |
| 1625 | + | |
1624 | 1626 | | |
1625 | 1627 | | |
1626 | 1628 | | |
| |||
2441 | 2443 | | |
2442 | 2444 | | |
2443 | 2445 | | |
2444 | | - | |
2445 | | - | |
2446 | | - | |
2447 | | - | |
2448 | | - | |
2449 | | - | |
2450 | | - | |
2451 | 2446 | | |
2452 | 2447 | | |
2453 | 2448 | | |
2454 | 2449 | | |
2455 | 2450 | | |
2456 | 2451 | | |
2457 | | - | |
2458 | | - | |
2459 | | - | |
2460 | | - | |
2461 | 2452 | | |
2462 | 2453 | | |
2463 | 2454 | | |
| |||
0 commit comments