-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
As the documentation says, this is primarily for debugging, and in the longer term we should rename it to test-show-index or something. In the meantime, just avoid xmalloc (which slurps in the rest of git), and separating out the trivial hex functions into "hex.o". This results in [torvalds@nehalem git]$ size git-show-index text data bss dec hex filename 222818 2276 112688 337782 52776 git-show-index (before) 5696 624 1264 7584 1da0 git-show-index (after) which is a whole lot better. Signed-off-by: Linus Torvalds <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
- Loading branch information
Showing
4 changed files
with
69 additions
and
67 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
#include "cache.h" | ||
|
||
const signed char hexval_table[256] = { | ||
-1, -1, -1, -1, -1, -1, -1, -1, /* 00-07 */ | ||
-1, -1, -1, -1, -1, -1, -1, -1, /* 08-0f */ | ||
-1, -1, -1, -1, -1, -1, -1, -1, /* 10-17 */ | ||
-1, -1, -1, -1, -1, -1, -1, -1, /* 18-1f */ | ||
-1, -1, -1, -1, -1, -1, -1, -1, /* 20-27 */ | ||
-1, -1, -1, -1, -1, -1, -1, -1, /* 28-2f */ | ||
0, 1, 2, 3, 4, 5, 6, 7, /* 30-37 */ | ||
8, 9, -1, -1, -1, -1, -1, -1, /* 38-3f */ | ||
-1, 10, 11, 12, 13, 14, 15, -1, /* 40-47 */ | ||
-1, -1, -1, -1, -1, -1, -1, -1, /* 48-4f */ | ||
-1, -1, -1, -1, -1, -1, -1, -1, /* 50-57 */ | ||
-1, -1, -1, -1, -1, -1, -1, -1, /* 58-5f */ | ||
-1, 10, 11, 12, 13, 14, 15, -1, /* 60-67 */ | ||
-1, -1, -1, -1, -1, -1, -1, -1, /* 68-67 */ | ||
-1, -1, -1, -1, -1, -1, -1, -1, /* 70-77 */ | ||
-1, -1, -1, -1, -1, -1, -1, -1, /* 78-7f */ | ||
-1, -1, -1, -1, -1, -1, -1, -1, /* 80-87 */ | ||
-1, -1, -1, -1, -1, -1, -1, -1, /* 88-8f */ | ||
-1, -1, -1, -1, -1, -1, -1, -1, /* 90-97 */ | ||
-1, -1, -1, -1, -1, -1, -1, -1, /* 98-9f */ | ||
-1, -1, -1, -1, -1, -1, -1, -1, /* a0-a7 */ | ||
-1, -1, -1, -1, -1, -1, -1, -1, /* a8-af */ | ||
-1, -1, -1, -1, -1, -1, -1, -1, /* b0-b7 */ | ||
-1, -1, -1, -1, -1, -1, -1, -1, /* b8-bf */ | ||
-1, -1, -1, -1, -1, -1, -1, -1, /* c0-c7 */ | ||
-1, -1, -1, -1, -1, -1, -1, -1, /* c8-cf */ | ||
-1, -1, -1, -1, -1, -1, -1, -1, /* d0-d7 */ | ||
-1, -1, -1, -1, -1, -1, -1, -1, /* d8-df */ | ||
-1, -1, -1, -1, -1, -1, -1, -1, /* e0-e7 */ | ||
-1, -1, -1, -1, -1, -1, -1, -1, /* e8-ef */ | ||
-1, -1, -1, -1, -1, -1, -1, -1, /* f0-f7 */ | ||
-1, -1, -1, -1, -1, -1, -1, -1, /* f8-ff */ | ||
}; | ||
|
||
int get_sha1_hex(const char *hex, unsigned char *sha1) | ||
{ | ||
int i; | ||
for (i = 0; i < 20; i++) { | ||
unsigned int val = (hexval(hex[0]) << 4) | hexval(hex[1]); | ||
if (val & ~0xff) | ||
return -1; | ||
*sha1++ = val; | ||
hex += 2; | ||
} | ||
return 0; | ||
} | ||
|
||
char *sha1_to_hex(const unsigned char *sha1) | ||
{ | ||
static int bufno; | ||
static char hexbuffer[4][50]; | ||
static const char hex[] = "0123456789abcdef"; | ||
char *buffer = hexbuffer[3 & ++bufno], *buf = buffer; | ||
int i; | ||
|
||
for (i = 0; i < 20; i++) { | ||
unsigned int val = *sha1++; | ||
*buf++ = hex[val >> 4]; | ||
*buf++ = hex[val & 0xf]; | ||
} | ||
*buf = '\0'; | ||
|
||
return buffer; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters