++ /* Use this as a flag to indicate that
++ * this chunk was at the same offset on
++ * both the sender and the receiver. */
++ s->sums[i].i = -1;
++ goto set_last_i;
++ }
++ }
+ if (i != last_i + 1 && last_i + 1 < s->count
++ && (!inplace || s->sums[last_i+1].offset >= offset || s->sums[last_i+1].i < 0)
+ && sum == s->sums[last_i+1].sum1
+ && memcmp(sum2, s->sums[last_i+1].sum2, s->s2length) == 0) {
+ /* we've found an adjacent match - the RLL coder
+ * will be happy */
+ i = last_i + 1;
+ }
++ set_last_i:
+ last_i = i;
+
+ matched(f,s,buf,offset,i);