@@ -29,9 +29,9 @@ static inline unsigned char get_bitmask(uint32_t pos)
2929 return ((unsigned char )1 ) << (pos & (BITS_PER_WORD - 1 ));
3030}
3131
32- int load_bloom_filter_from_graph (struct commit_graph * g ,
33- struct bloom_filter * filter ,
34- uint32_t graph_pos )
32+ static int load_bloom_filter_from_graph (struct commit_graph * g ,
33+ struct bloom_filter * filter ,
34+ uint32_t graph_pos )
3535{
3636 uint32_t lex_pos , start_index , end_index ;
3737
@@ -66,64 +66,7 @@ int load_bloom_filter_from_graph(struct commit_graph *g,
6666 * Not considered to be cryptographically secure.
6767 * Implemented as described in https://en.wikipedia.org/wiki/MurmurHash#Algorithm
6868 */
69- uint32_t murmur3_seeded_v2 (uint32_t seed , const char * data , size_t len )
70- {
71- const uint32_t c1 = 0xcc9e2d51 ;
72- const uint32_t c2 = 0x1b873593 ;
73- const uint32_t r1 = 15 ;
74- const uint32_t r2 = 13 ;
75- const uint32_t m = 5 ;
76- const uint32_t n = 0xe6546b64 ;
77- int i ;
78- uint32_t k1 = 0 ;
79- const char * tail ;
80-
81- int len4 = len / sizeof (uint32_t );
82-
83- uint32_t k ;
84- for (i = 0 ; i < len4 ; i ++ ) {
85- uint32_t byte1 = (uint32_t )(unsigned char )data [4 * i ];
86- uint32_t byte2 = ((uint32_t )(unsigned char )data [4 * i + 1 ]) << 8 ;
87- uint32_t byte3 = ((uint32_t )(unsigned char )data [4 * i + 2 ]) << 16 ;
88- uint32_t byte4 = ((uint32_t )(unsigned char )data [4 * i + 3 ]) << 24 ;
89- k = byte1 | byte2 | byte3 | byte4 ;
90- k *= c1 ;
91- k = rotate_left (k , r1 );
92- k *= c2 ;
93-
94- seed ^= k ;
95- seed = rotate_left (seed , r2 ) * m + n ;
96- }
97-
98- tail = (data + len4 * sizeof (uint32_t ));
99-
100- switch (len & (sizeof (uint32_t ) - 1 )) {
101- case 3 :
102- k1 ^= ((uint32_t )(unsigned char )tail [2 ]) << 16 ;
103- /*-fallthrough*/
104- case 2 :
105- k1 ^= ((uint32_t )(unsigned char )tail [1 ]) << 8 ;
106- /*-fallthrough*/
107- case 1 :
108- k1 ^= ((uint32_t )(unsigned char )tail [0 ]) << 0 ;
109- k1 *= c1 ;
110- k1 = rotate_left (k1 , r1 );
111- k1 *= c2 ;
112- seed ^= k1 ;
113- break ;
114- }
115-
116- seed ^= (uint32_t )len ;
117- seed ^= (seed >> 16 );
118- seed *= 0x85ebca6b ;
119- seed ^= (seed >> 13 );
120- seed *= 0xc2b2ae35 ;
121- seed ^= (seed >> 16 );
122-
123- return seed ;
124- }
125-
126- static uint32_t murmur3_seeded_v1 (uint32_t seed , const char * data , size_t len )
69+ uint32_t murmur3_seeded (uint32_t seed , const char * data , size_t len )
12770{
12871 const uint32_t c1 = 0xcc9e2d51 ;
12972 const uint32_t c2 = 0x1b873593 ;
@@ -188,14 +131,8 @@ void fill_bloom_key(const char *data,
188131 int i ;
189132 const uint32_t seed0 = 0x293ae76f ;
190133 const uint32_t seed1 = 0x7e646e2c ;
191- uint32_t hash0 , hash1 ;
192- if (settings -> hash_version == 2 ) {
193- hash0 = murmur3_seeded_v2 (seed0 , data , len );
194- hash1 = murmur3_seeded_v2 (seed1 , data , len );
195- } else {
196- hash0 = murmur3_seeded_v1 (seed0 , data , len );
197- hash1 = murmur3_seeded_v1 (seed1 , data , len );
198- }
134+ const uint32_t hash0 = murmur3_seeded (seed0 , data , len );
135+ const uint32_t hash1 = murmur3_seeded (seed1 , data , len );
199136
200137 key -> hashes = (uint32_t * )xcalloc (settings -> num_hashes , sizeof (uint32_t ));
201138 for (i = 0 ; i < settings -> num_hashes ; i ++ )
0 commit comments