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

Function reftable_ref_record_equal

reftable/record.c:1219–1244  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1217}
1218
1219int reftable_ref_record_equal(const struct reftable_ref_record *a,
1220 const struct reftable_ref_record *b, uint32_t hash_size)
1221{
1222 if (!null_streq(a->refname, b->refname))
1223 return 0;
1224
1225 if (a->update_index != b->update_index ||
1226 a->value_type != b->value_type)
1227 return 0;
1228
1229 switch (a->value_type) {
1230 case REFTABLE_REF_SYMREF:
1231 return !strcmp(a->value.symref, b->value.symref);
1232 case REFTABLE_REF_VAL2:
1233 return hash_equal(a->value.val2.value, b->value.val2.value,
1234 hash_size) &&
1235 hash_equal(a->value.val2.target_value,
1236 b->value.val2.target_value, hash_size);
1237 case REFTABLE_REF_VAL1:
1238 return hash_equal(a->value.val1, b->value.val1, hash_size);
1239 case REFTABLE_REF_DELETION:
1240 return 1;
1241 default:
1242 abort();
1243 }
1244}
1245
1246int reftable_ref_record_compare_name(const void *a, const void *b)
1247{

Calls 2

null_streqFunction · 0.85
hash_equalFunction · 0.85