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

Function reftable_obj_record_copy_from

reftable/record.c:489–517  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

487}
488
489static int reftable_obj_record_copy_from(void *rec, const void *src_rec,
490 uint32_t hash_size REFTABLE_UNUSED)
491{
492 struct reftable_obj_record *obj = rec;
493 const struct reftable_obj_record *src = src_rec;
494
495 reftable_obj_record_release(obj);
496
497 REFTABLE_ALLOC_ARRAY(obj->hash_prefix, src->hash_prefix_len);
498 if (!obj->hash_prefix)
499 return REFTABLE_OUT_OF_MEMORY_ERROR;
500 obj->hash_prefix_len = src->hash_prefix_len;
501 if (src->hash_prefix_len)
502 memcpy(obj->hash_prefix, src->hash_prefix, obj->hash_prefix_len);
503
504 if (src->offset_len) {
505 if (sizeof(*src->offsets) > SIZE_MAX / src->offset_len)
506 return REFTABLE_OUT_OF_MEMORY_ERROR;
507
508 REFTABLE_ALLOC_ARRAY(obj->offsets, src->offset_len);
509 if (!obj->offsets)
510 return REFTABLE_OUT_OF_MEMORY_ERROR;
511
512 memcpy(obj->offsets, src->offsets, sizeof(*src->offsets) * src->offset_len);
513 obj->offset_len = src->offset_len;
514 }
515
516 return 0;
517}
518
519static uint8_t reftable_obj_record_val_type(const void *rec)
520{

Callers

nothing calls this directly

Calls 1

Tested by

no test coverage detected