From 4074e7034641cbbbfc861961d216d58a503d0aee Mon Sep 17 00:00:00 2001 From: Andre Noll Date: Wed, 24 Dec 2008 13:59:14 +0100 Subject: [PATCH] Rename bloom_init() to bloom_new(). --- bloom.c | 16 ++++++++++------ bloom.h | 3 +-- create.c | 4 ++-- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/bloom.c b/bloom.c index 9b66b90..2aff535 100644 --- a/bloom.c +++ b/bloom.c @@ -12,6 +12,9 @@ void *adu_calloc(size_t size) { void *ret = malloc(size); + + if (!ret) + exit(EXIT_FAILURE); memset(ret, 0, size); return ret; } @@ -128,13 +131,15 @@ void bloom_free(struct bloom *b) } /** - * Initialize a bloom filter. + * Allocate and initialize a new bloom filter. * * \param order Use a filter containing 2^order bits. * \param num_hash_functions Set that many bits in the filter per entry. + * + * \return This function either returns a freshly allocated and initialized + * bloom filter or does not return at all (if the underlying malloc() failed). */ -int bloom_init(unsigned order, unsigned num_hash_functions, - struct bloom **result) +struct bloom *bloom_new(unsigned order, unsigned num_hash_functions) { struct bloom *b = adu_calloc(sizeof(*b)); @@ -143,8 +148,7 @@ int bloom_init(unsigned order, unsigned num_hash_functions, b->order = order; b->num_hash_functions = num_hash_functions; b->filter = adu_calloc(filter_bits(b) / 8); - *result = b; - return 1; + return b; } #ifdef TEST_BLOOM @@ -184,7 +188,7 @@ int main(int argc, char **argv) printf("k: # of hash functions to use\n"); exit(1); } - bloom_init(atoi(argv[1]), atoi(argv[2]), &b); + b = bloom_new(atoi(argv[1]), atoi(argv[2])); add_stdin(b); INFO_LOG("%u%% of bits are set\n", (unsigned) (b->num_set_bits * 100ULL / filter_bits(b))); diff --git a/bloom.h b/bloom.h index e7f3cd3..5121606 100644 --- a/bloom.h +++ b/bloom.h @@ -20,7 +20,6 @@ struct bloom { uint8_t *filter; }; -int bloom_init(unsigned bloom_filter_order, unsigned num_hash_functions, - struct bloom **result); +struct bloom *bloom_new(unsigned order, unsigned num_hash_functions); void bloom_free(struct bloom *b); int bloom_test_and_insert(const uint8_t *data, size_t len, struct bloom *b); diff --git a/create.c b/create.c index 51583a6..e3f09d4 100644 --- a/create.c +++ b/create.c @@ -258,8 +258,8 @@ int com_create(void) if (!S_ISDIR(statbuf.st_mode)) return -ERRNO_TO_ERROR(ENOTDIR); if (order >= 10 && num > 0) { - bloom_init(order, num, &global_bloom_filter); - bloom_init(order, num, &user_bloom_filter); + global_bloom_filter = bloom_new(order, num); + user_bloom_filter = bloom_new(order, num); } else WARNING_LOG("hard link detection deactivated\n"); device_id = statbuf.st_dev; -- 2.39.2