| 487 | } |
| 488 | |
| 489 | static 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 | |
| 519 | static uint8_t reftable_obj_record_val_type(const void *rec) |
| 520 | { |
nothing calls this directly
no test coverage detected