aboutsummaryrefslogtreecommitdiff
path: root/diff-delta.c
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2006-09-27 22:23:12 -0700
committerJunio C Hamano <junkio@cox.net>2006-09-27 22:23:12 -0700
commit2958d9b5dbebeb82e7230bbfd3f421781d90f3f7 (patch)
tree881c16a7442a1829d8959aee272f50065c53b582 /diff-delta.c
parent194db7e3bbab9669c511133549e6ae74481c9a4f (diff)
parent51b2dd4e3f730f6be6c19faf3b4a04caea9e0420 (diff)
downloadgit-2958d9b5dbebeb82e7230bbfd3f421781d90f3f7.tar.gz
git-2958d9b5dbebeb82e7230bbfd3f421781d90f3f7.tar.xz
Merge branch 'master' into lj/refs
* master: (72 commits) runstatus: do not recurse into subdirectories if not needed grep: fix --fixed-strings combined with expression. grep: free expressions and patterns when done. Corrected copy-and-paste thinko in ignore executable bit test case. An illustration of rev-list --parents --pretty=raw Allow git-checkout when on a non-existant branch. gitweb: Decode long title for link tooltips git-svn: Fix fetch --no-ignore-externals with GIT_SVN_NO_LIB=1 Ignore executable bit when adding files if filemode=0. Remove empty ref directories that prevent creating a ref. Use const for interpolate arguments git-archive: update documentation Deprecate merge-recursive.py gitweb: fix over-eager application of esc_html(). Allow '(no author)' in git-svn's authors file. Allow 'svn fetch' on '(no date)' revisions in Subversion. git-repack: allow git-repack to run in subdirectory Remove upload-tar and make git-tar-tree a thin wrapper to git-archive git-tar-tree: Move code for git-archive --format=tar to archive-tar.c git-tar-tree: Remove duplicate git_config() call ...
Diffstat (limited to 'diff-delta.c')
-rw-r--r--diff-delta.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/diff-delta.c b/diff-delta.c
index fa16d06c8..51df4608a 100644
--- a/diff-delta.c
+++ b/diff-delta.c
@@ -308,8 +308,8 @@ create_delta(const struct delta_index *index,
continue;
if (ref_size > top - src)
ref_size = top - src;
- if (ref_size > 0x10000)
- ref_size = 0x10000;
+ if (ref_size > 0xffffff)
+ ref_size = 0xffffff;
if (ref_size <= msize)
break;
while (ref_size-- && *src++ == *ref)
@@ -318,6 +318,8 @@ create_delta(const struct delta_index *index,
/* this is our best match so far */
msize = ref - entry->ptr;
moff = entry->ptr - ref_data;
+ if (msize >= 0x10000)
+ break; /* this is good enough */
}
}
@@ -381,6 +383,8 @@ create_delta(const struct delta_index *index,
if (msize & 0xff) { out[outpos++] = msize; i |= 0x10; }
msize >>= 8;
if (msize & 0xff) { out[outpos++] = msize; i |= 0x20; }
+ msize >>= 8;
+ if (msize & 0xff) { out[outpos++] = msize; i |= 0x40; }
*op = i;
}