sha1_to_hex() usage cleanup
Somebody on the #git channel complained that the sha1_to_hex() thing uses a static buffer which caused an error message to show the same hex output twice instead of showing two different ones. That's pretty easily rectified by making it uses a simple LRU of a few buffers, which also allows some other users (that were aware of the buffer re-use) to be written in a more straightforward manner. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
committed by
Junio C Hamano
parent
935e714204
commit
dcb3450fd8
@ -108,9 +108,10 @@ int safe_create_leading_directories(char *path)
|
||||
|
||||
char * sha1_to_hex(const unsigned char *sha1)
|
||||
{
|
||||
static char buffer[50];
|
||||
static int bufno;
|
||||
static char hexbuffer[4][50];
|
||||
static const char hex[] = "0123456789abcdef";
|
||||
char *buf = buffer;
|
||||
char *buffer = hexbuffer[3 & ++bufno], *buf = buffer;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 20; i++) {
|
||||
|
||||
Reference in New Issue
Block a user