-static void singleton_cb(struct invbloom *ib, size_t n,
+static void singleton_cb(struct invbloom *ib, size_t n, bool before,
/* Single entry ib table keeps it simple. */
ib = invbloom_new(ctx, int, 1, 100);
/* Single entry ib table keeps it simple. */
ib = invbloom_new(ctx, int, 1, 100);
invbloom_insert(ib, &val);
ok1(ib->count[0] == NUM_HASHES);
invbloom_insert(ib, &val);
ok1(ib->count[0] == NUM_HASHES);
ok1(!invbloom_empty(ib));
/* First delete takes it via singleton. */
invbloom_delete(ib, &val);
ok1(!invbloom_empty(ib));
/* First delete takes it via singleton. */
invbloom_delete(ib, &val);
ok1(invbloom_empty(ib));
/* Second delete creates negative singleton. */
invbloom_delete(ib, &val);
ok1(invbloom_empty(ib));
/* Second delete creates negative singleton. */
invbloom_delete(ib, &val);
/* Now a larger table: this seed set so entries don't clash */
ib = invbloom_new(ctx, int, 1024, 0);
/* Now a larger table: this seed set so entries don't clash */
ib = invbloom_new(ctx, int, 1024, 0);
- singleton_count = 0;
- invbloom_singleton_cb(ib, singleton_cb, &singleton_count);
+ singleton_count[false] = singleton_count[true] = 0;
+ invbloom_singleton_cb(ib, singleton_cb, singleton_count);
ok1(invbloom_empty(ib));
/* Second delete creates negative singletons. */
invbloom_delete(ib, &val);
ok1(invbloom_empty(ib));
/* Second delete creates negative singletons. */
invbloom_delete(ib, &val);