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

Function reftable_obj_record_encode

reftable/record.c:527–557  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

525}
526
527static int reftable_obj_record_encode(const void *rec, struct string_view s,
528 uint32_t hash_size REFTABLE_UNUSED)
529{
530 const struct reftable_obj_record *r = rec;
531 struct string_view start = s;
532 int i = 0;
533 int n = 0;
534 uint64_t last = 0;
535 if (r->offset_len == 0 || r->offset_len >= 8) {
536 n = put_var_int(&s, r->offset_len);
537 if (n < 0)
538 return n;
539 string_view_consume(&s, n);
540 }
541 if (r->offset_len == 0)
542 return start.len - s.len;
543 n = put_var_int(&s, r->offsets[0]);
544 if (n < 0)
545 return n;
546 string_view_consume(&s, n);
547
548 last = r->offsets[0];
549 for (i = 1; i < r->offset_len; i++) {
550 int n = put_var_int(&s, r->offsets[i] - last);
551 if (n < 0)
552 return n;
553 string_view_consume(&s, n);
554 last = r->offsets[i];
555 }
556 return start.len - s.len;
557}
558
559static int reftable_obj_record_decode(void *rec, struct reftable_buf key,
560 uint8_t val_type, struct string_view in,

Callers

nothing calls this directly

Calls 2

put_var_intFunction · 0.85
string_view_consumeFunction · 0.85

Tested by

no test coverage detected