#include "cache.h" #include "oidset.h" int oidset_contains(const struct oidset *set, const struct object_id *oid) { if (!set->map.map.tablesize) return 0; return !!oidmap_get(&set->map, oid); } int oidset_insert(struct oidset *set, const struct object_id *oid) { struct oidmap_entry *entry; if (!set->map.map.tablesize) oidmap_init(&set->map, 0); else if (oidset_contains(set, oid)) return 1; entry = xmalloc(sizeof(*entry)); oidcpy(&entry->oid, oid); oidmap_put(&set->map, entry); return 0; } int oidset_remove(struct oidset *set, const struct object_id *oid) { struct oidmap_entry *entry; entry = oidmap_remove(&set->map, oid); free(entry); return (entry != NULL); } void oidset_clear(struct oidset *set) { oidmap_free(&set->map, 1); }