MCPcopy Create free account
hub / github.com/git/git / reftable_decode_key

Function reftable_decode_key

reftable/record.c:193–221  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

191}
192
193int reftable_decode_key(struct reftable_buf *last_key, uint8_t *extra,
194 struct string_view in)
195{
196 int start_len = in.len;
197 uint64_t prefix_len = 0;
198 uint64_t suffix_len = 0;
199 int err, n;
200
201 n = reftable_decode_keylen(in, &prefix_len, &suffix_len, extra);
202 if (n < 0)
203 return -1;
204 string_view_consume(&in, n);
205
206 if (in.len < suffix_len ||
207 prefix_len > last_key->len)
208 return -1;
209
210 err = reftable_buf_setlen(last_key, prefix_len);
211 if (err < 0)
212 return err;
213
214 err = reftable_buf_add(last_key, in.buf, suffix_len);
215 if (err < 0)
216 return err;
217
218 string_view_consume(&in, suffix_len);
219
220 return start_len - in.len;
221}
222
223static int reftable_ref_record_key(const void *r, struct reftable_buf *dest)
224{

Callers 3

reftable_block_first_keyFunction · 0.85
block_iter_nextFunction · 0.85

Calls 4

reftable_decode_keylenFunction · 0.85
string_view_consumeFunction · 0.85
reftable_buf_setlenFunction · 0.85
reftable_buf_addFunction · 0.85

Tested by 1