summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Pitre <nico@cam.org>2006-02-10 18:42:05 (GMT)
committerJunio C Hamano <junkio@cox.net>2006-02-10 19:42:56 (GMT)
commit39556fbdadaacf67330bc1464e0172468e9c3a5e (patch)
treee63d2249b68742a5619937e0cab0b4c4b41bd5a6
parente7ad4a9c3c9d383d1df52410e18808174f7be667 (diff)
downloadgit-39556fbdadaacf67330bc1464e0172468e9c3a5e.zip
git-39556fbdadaacf67330bc1464e0172468e9c3a5e.tar.gz
git-39556fbdadaacf67330bc1464e0172468e9c3a5e.tar.bz2
delta micro optimization
My kernel work habit made me look at the generated assembly for the delta code, and one obvious albeit small improvement is this patch. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
-rw-r--r--delta.h10
1 files changed, 5 insertions, 5 deletions
diff --git a/delta.h b/delta.h
index 31d1820..a15350d 100644
--- a/delta.h
+++ b/delta.h
@@ -19,14 +19,14 @@ extern void *patch_delta(void *src_buf, unsigned long src_size,
static inline unsigned long get_delta_hdr_size(const unsigned char **datap)
{
const unsigned char *data = *datap;
- unsigned char cmd = *data++;
- unsigned long size = cmd & ~0x80;
- int i = 7;
- while (cmd & 0x80) {
+ unsigned char cmd;
+ unsigned long size = 0;
+ int i = 0;
+ do {
cmd = *data++;
size |= (cmd & ~0x80) << i;
i += 7;
- }
+ } while (cmd & 0x80);
*datap = data;
return size;
}