| #include "cache.h" | 
 | #include "oidset.h" | 
 |  | 
 | void oidset_init(struct oidset *set, size_t initial_size) | 
 | { | 
 | 	memset(&set->set, 0, sizeof(set->set)); | 
 | 	if (initial_size) | 
 | 		kh_resize_oid(&set->set, initial_size); | 
 | } | 
 |  | 
 | int oidset_contains(const struct oidset *set, const struct object_id *oid) | 
 | { | 
 | 	khiter_t pos = kh_get_oid(&set->set, *oid); | 
 | 	return pos != kh_end(&set->set); | 
 | } | 
 |  | 
 | int oidset_insert(struct oidset *set, const struct object_id *oid) | 
 | { | 
 | 	int added; | 
 | 	kh_put_oid(&set->set, *oid, &added); | 
 | 	return !added; | 
 | } | 
 |  | 
 | int oidset_remove(struct oidset *set, const struct object_id *oid) | 
 | { | 
 | 	khiter_t pos = kh_get_oid(&set->set, *oid); | 
 | 	if (pos == kh_end(&set->set)) | 
 | 		return 0; | 
 | 	kh_del_oid(&set->set, pos); | 
 | 	return 1; | 
 | } | 
 |  | 
 | void oidset_clear(struct oidset *set) | 
 | { | 
 | 	kh_release_oid(&set->set); | 
 | 	oidset_init(set, 0); | 
 | } |