summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: eb41ab1)
raw | patch | inline | side by side (parent: eb41ab1)
author | Linus Torvalds <torvalds@ppc970.osdl.org> | |
Sun, 26 Jun 2005 01:29:23 +0000 (18:29 -0700) | ||
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | |
Sun, 26 Jun 2005 01:29:23 +0000 (18:29 -0700) |
When Junio fixed the lack of a successful error code from try_delta(),
that uncovered an off-by-one error in the caller.
Also, some testing made it clear that we now find a lot more deltas,
because we used to (incorrectly) break early on bogus "failure"
cases.
that uncovered an off-by-one error in the caller.
Also, some testing made it clear that we now find a lot more deltas,
because we used to (incorrectly) break early on bogus "failure"
cases.
pack-objects.c | patch | blob | history |
diff --git a/pack-objects.c b/pack-objects.c
index 68c7e592b51b2174390bf9ab17e7dec7a9841d52..dfa9d44a15625d71a93418c2c5bd996441c79506 100644 (file)
--- a/pack-objects.c
+++ b/pack-objects.c
n->data = read_sha1_file(entry->sha1, type, &size);
if (size != entry->size)
die("object %s inconsistent object length (%lu vs %lu)", sha1_to_hex(entry->sha1), size, entry->size);
- for (j = 0; j < window; j++) {
- unsigned int other_idx = idx - 1 - j;
+ j = window;
+ while (--j > 0) {
+ unsigned int other_idx = idx + j;
struct unpacked *m;
- if (other_idx < 0)
- other_idx += window;
+ if (other_idx >= window)
+ other_idx -= window;
m = array + other_idx;
if (!m->entry)
break;