4444/* The maximum size for an object header. */
4545#define MAX_HEADER_LEN 32
4646
47-
48- #define EMPTY_TREE_SHA1_BIN_LITERAL \
49- "\x4b\x82\x5d\xc6\x42\xcb\x6e\xb9\xa0\x60" \
50- "\xe5\x4b\xf8\xd6\x92\x88\xfb\xee\x49\x04"
51- #define EMPTY_TREE_SHA256_BIN_LITERAL \
52- "\x6e\xf1\x9b\x41\x22\x5c\x53\x69\xf1\xc1" \
53- "\x04\xd4\x5d\x8d\x85\xef\xa9\xb0\x57\xb5" \
54- "\x3b\x14\xb4\xb9\xb9\x39\xdd\x74\xde\xcc" \
55- "\x53\x21"
56-
57- #define EMPTY_BLOB_SHA1_BIN_LITERAL \
58- "\xe6\x9d\xe2\x9b\xb2\xd1\xd6\x43\x4b\x8b" \
59- "\x29\xae\x77\x5a\xd8\xc2\xe4\x8c\x53\x91"
60- #define EMPTY_BLOB_SHA256_BIN_LITERAL \
61- "\x47\x3a\x0f\x4c\x3b\xe8\xa9\x36\x81\xa2" \
62- "\x67\xe3\xb1\xe9\xa7\xdc\xda\x11\x85\x43" \
63- "\x6f\xe1\x41\xf7\x74\x91\x20\xa3\x03\x72" \
64- "\x18\x13"
65-
6647static const struct object_id empty_tree_oid = {
67- .hash = EMPTY_TREE_SHA1_BIN_LITERAL ,
48+ .hash = {
49+ 0x4b , 0x82 , 0x5d , 0xc6 , 0x42 , 0xcb , 0x6e , 0xb9 , 0xa0 , 0x60 ,
50+ 0xe5 , 0x4b , 0xf8 , 0xd6 , 0x92 , 0x88 , 0xfb , 0xee , 0x49 , 0x04
51+ },
6852 .algo = GIT_HASH_SHA1 ,
6953};
7054static const struct object_id empty_blob_oid = {
71- .hash = EMPTY_BLOB_SHA1_BIN_LITERAL ,
55+ .hash = {
56+ 0xe6 , 0x9d , 0xe2 , 0x9b , 0xb2 , 0xd1 , 0xd6 , 0x43 , 0x4b , 0x8b ,
57+ 0x29 , 0xae , 0x77 , 0x5a , 0xd8 , 0xc2 , 0xe4 , 0x8c , 0x53 , 0x91
58+ },
7259 .algo = GIT_HASH_SHA1 ,
7360};
7461static const struct object_id null_oid_sha1 = {
7562 .hash = {0 },
7663 .algo = GIT_HASH_SHA1 ,
7764};
7865static const struct object_id empty_tree_oid_sha256 = {
79- .hash = EMPTY_TREE_SHA256_BIN_LITERAL ,
66+ .hash = {
67+ 0x6e , 0xf1 , 0x9b , 0x41 , 0x22 , 0x5c , 0x53 , 0x69 , 0xf1 , 0xc1 ,
68+ 0x04 , 0xd4 , 0x5d , 0x8d , 0x85 , 0xef , 0xa9 , 0xb0 , 0x57 , 0xb5 ,
69+ 0x3b , 0x14 , 0xb4 , 0xb9 , 0xb9 , 0x39 , 0xdd , 0x74 , 0xde , 0xcc ,
70+ 0x53 , 0x21
71+ },
8072 .algo = GIT_HASH_SHA256 ,
8173};
8274static const struct object_id empty_blob_oid_sha256 = {
83- .hash = EMPTY_BLOB_SHA256_BIN_LITERAL ,
75+ .hash = {
76+ 0x47 , 0x3a , 0x0f , 0x4c , 0x3b , 0xe8 , 0xa9 , 0x36 , 0x81 , 0xa2 ,
77+ 0x67 , 0xe3 , 0xb1 , 0xe9 , 0xa7 , 0xdc , 0xda , 0x11 , 0x85 , 0x43 ,
78+ 0x6f , 0xe1 , 0x41 , 0xf7 , 0x74 , 0x91 , 0x20 , 0xa3 , 0x03 , 0x72 ,
79+ 0x18 , 0x13
80+ },
8481 .algo = GIT_HASH_SHA256 ,
8582};
8683static const struct object_id null_oid_sha256 = {
@@ -313,30 +310,28 @@ int hash_algo_by_length(int len)
313310 * to write them into the object store (e.g. a browse-only
314311 * application).
315312 */
316- static struct cached_object {
313+ static struct cached_object_entry {
317314 struct object_id oid ;
318- enum object_type type ;
319- const void * buf ;
320- unsigned long size ;
315+ struct cached_object {
316+ enum object_type type ;
317+ const void * buf ;
318+ unsigned long size ;
319+ } value ;
321320} * cached_objects ;
322321static int cached_object_nr , cached_object_alloc ;
323322
324- static struct cached_object empty_tree = {
325- .oid = {
326- .hash = EMPTY_TREE_SHA1_BIN_LITERAL ,
327- },
328- .type = OBJ_TREE ,
329- .buf = "" ,
330- };
331-
332- static struct cached_object * find_cached_object (const struct object_id * oid )
323+ static const struct cached_object * find_cached_object (const struct object_id * oid )
333324{
325+ static const struct cached_object empty_tree = {
326+ .type = OBJ_TREE ,
327+ .buf = "" ,
328+ };
334329 int i ;
335- struct cached_object * co = cached_objects ;
330+ const struct cached_object_entry * co = cached_objects ;
336331
337332 for (i = 0 ; i < cached_object_nr ; i ++ , co ++ ) {
338333 if (oideq (& co -> oid , oid ))
339- return co ;
334+ return & co -> value ;
340335 }
341336 if (oideq (oid , the_hash_algo -> empty_tree ))
342337 return & empty_tree ;
@@ -1627,7 +1622,7 @@ static int do_oid_object_info_extended(struct repository *r,
16271622 struct object_info * oi , unsigned flags )
16281623{
16291624 static struct object_info blank_oi = OBJECT_INFO_INIT ;
1630- struct cached_object * co ;
1625+ const struct cached_object * co ;
16311626 struct pack_entry e ;
16321627 int rtype ;
16331628 const struct object_id * real = oid ;
@@ -1849,7 +1844,7 @@ int oid_object_info(struct repository *r,
18491844int pretend_object_file (void * buf , unsigned long len , enum object_type type ,
18501845 struct object_id * oid )
18511846{
1852- struct cached_object * co ;
1847+ struct cached_object_entry * co ;
18531848 char * co_buf ;
18541849
18551850 hash_object_file (the_hash_algo , buf , len , type , oid );
@@ -1858,11 +1853,11 @@ int pretend_object_file(void *buf, unsigned long len, enum object_type type,
18581853 return 0 ;
18591854 ALLOC_GROW (cached_objects , cached_object_nr + 1 , cached_object_alloc );
18601855 co = & cached_objects [cached_object_nr ++ ];
1861- co -> size = len ;
1862- co -> type = type ;
1856+ co -> value . size = len ;
1857+ co -> value . type = type ;
18631858 co_buf = xmalloc (len );
18641859 memcpy (co_buf , buf , len );
1865- co -> buf = co_buf ;
1860+ co -> value . buf = co_buf ;
18661861 oidcpy (& co -> oid , oid );
18671862 return 0 ;
18681863}
0 commit comments