- int32 i2;
- for (i2 = i; i2 >= 0; i2 = s->sums[i2].chain) {
- if (s->sums[i2].offset != offset)
- continue;
- if (i2 != i) {
- if (sum != s->sums[i2].sum1
- || l != s->sums[i2].len
- || memcmp(sum2, s->sums[i2].sum2, s->s2length) != 0)
- break;
- i = i2;
- }
- /* This chunk remained in the same spot in the old and new file. */
- s->sums[i].flags |= SUMFLG_SAME_OFFSET;
- want_i = i;
- break;
+ if (i != aligned_i) {
+ if (sum != s->sums[aligned_i].sum1
+ || l != s->sums[aligned_i].len
+ || memcmp(sum2, s->sums[aligned_i].sum2, s->s2length) != 0)
+ goto check_want_i;
+ i = aligned_i;