diff options
author | Corey Farrell <git@cfware.com> | 2017-12-29 23:59:00 -0500 |
---|---|---|
committer | Corey Farrell <git@cfware.com> | 2017-12-30 13:20:16 -0500 |
commit | bc73337e0796d7b85b7b4f86d427b4212b895745 (patch) | |
tree | 017a012d065fed8a132c6c747215aa446e5e0d38 /main/named_locks.c | |
parent | 80e6b2eff54a4ff57e2521164224b1b1c878ae94 (diff) |
core: Use macros to generate ao2_container callbacks where possible.
This uses AO2_STRING_FIELD_HASH_FN and AO2_STRING_FIELD_CMP_FN where
possible in the Asterisk core.
This removes CMP_STOP from the result of CMP_FN callbacks for the
following structure types:
* ast_bucket_metadata
* ast_bucket_scheme
* generic_monitor_instance_list (ccss.c)
* ast_bucket_file (media_cache.c)
* named_acl
Change-Id: Ide4c1449a894bce70dea1fef664dade9b57578f1
Diffstat (limited to 'main/named_locks.c')
-rw-r--r-- | main/named_locks.c | 44 |
1 files changed, 3 insertions, 41 deletions
diff --git a/main/named_locks.c b/main/named_locks.c index b38539c2f..2fb8f440f 100644 --- a/main/named_locks.c +++ b/main/named_locks.c @@ -41,46 +41,8 @@ struct named_lock_proxy { struct ast_named_lock { }; -static int named_locks_hash(const void *obj, const int flags) -{ - const struct named_lock_proxy *lock = obj; - - switch (flags & OBJ_SEARCH_MASK) { - case OBJ_SEARCH_KEY: - return ast_str_hash(obj); - case OBJ_SEARCH_OBJECT: - return ast_str_hash(lock->key); - default: - /* Hash can only work on something with a full key. */ - ast_assert(0); - return 0; - } -} - -static int named_locks_cmp(void *obj_left, void *obj_right, int flags) -{ - const struct named_lock_proxy *object_left = obj_left; - const struct named_lock_proxy *object_right = obj_right; - const char *right_key = obj_right; - int cmp; - - switch (flags & OBJ_SEARCH_MASK) { - case OBJ_SEARCH_OBJECT: - right_key = object_right->key; - /* Fall through */ - case OBJ_SEARCH_KEY: - cmp = strcmp(object_left->key, right_key); - break; - case OBJ_SEARCH_PARTIAL_KEY: - cmp = strncmp(object_left->key, right_key, strlen(right_key)); - break; - default: - cmp = 0; - break; - } - - return cmp ? 0 : CMP_MATCH; -} +AO2_STRING_FIELD_HASH_FN(named_lock_proxy, key) +AO2_STRING_FIELD_CMP_FN(named_lock_proxy, key) static void named_locks_shutdown(void) { @@ -90,7 +52,7 @@ static void named_locks_shutdown(void) int ast_named_locks_init(void) { named_locks = ao2_container_alloc_hash(AO2_ALLOC_OPT_LOCK_MUTEX, 0, - NAMED_LOCKS_BUCKETS, named_locks_hash, NULL, named_locks_cmp); + NAMED_LOCKS_BUCKETS, named_lock_proxy_hash_fn, NULL, named_lock_proxy_cmp_fn); if (!named_locks) { return -1; } |