Commit Diff


commit - fb5b9d5a63582091c4d5483cdb90c37ed0846329
commit + f831532b96ca120d766ce7c8ee00fdd5a0d7b415
blob - 7d98296142abd2f7a34aef5776b35c41a97a36d0
blob + a64e2b70f7d72a371e595432714264b0131f81a6
--- lib/got_lib_object_idset.h
+++ lib/got_lib_object_idset.h
@@ -24,8 +24,6 @@ const struct got_error *got_object_idset_add(void **,
 void *got_object_idset_get(struct got_object_idset *, struct got_object_id *);
 const struct got_error *got_object_idset_remove(void **,
     struct got_object_idset *, struct got_object_id *);
-const struct got_error *got_object_idset_remove_random(void **,
-    struct got_object_idset *);
 int got_object_idset_contains(struct got_object_idset *,
     struct got_object_id *);
 void got_object_idset_for_each(struct got_object_idset *,
blob - 56035401c75a86173b08407b67496f8f59f81183
blob + 75d05734bd36c395981ed8794bc7f7467ed71028
--- lib/object_idset.c
+++ lib/object_idset.c
@@ -193,49 +193,6 @@ got_object_idset_remove(void **data, struct got_object
 	return got_error(GOT_ERR_NO_OBJ);
 }
 
-const struct got_error *
-got_object_idset_remove_random(void **data, struct got_object_idset *set)
-{
-	struct got_object_idset_element *entry, *tmp;
-	int i, n, totelem;
-
-	if (data)
-		*data = NULL;
-
-	if (set->totelem == 0)
-		return got_error(GOT_ERR_NO_OBJ);
-
-	/* Pick a random element index across all lists. */
-	if (set->totelem == 1)
-		n = 0;
-	else
-		n = arc4random_uniform(set->totelem);
-
-	totelem = 0;
-	for (i = 0; i < nitems(set->entries); i++) {
-		/* Skip lists which don't contain the element we picked. */
-		totelem += set->nelem[i];
-		if (totelem == 0 || n > totelem - 1) {
-			n -= set->nelem[i];
-			continue;
-		}
-		TAILQ_FOREACH_SAFE(entry, &set->entries[i], entry, tmp) {
-			if (n == 0) {
-				TAILQ_REMOVE(&set->entries[i], entry, entry);
-				if (data)
-					*data = entry->data;
-				free(entry);
-				set->nelem[i]--;
-				set->totelem--;
-				return NULL;
-			}
-			n--;
-		}
-	}
-
-	return got_error(GOT_ERR_NO_OBJ);
-}
-
 int
 got_object_idset_contains(struct got_object_idset *set,
     struct got_object_id *id)