[Asterisk-code-review] res sorcery config.c: Cleanup ao2 container usage idioms. (asterisk[13])

George Joseph asteriskteam at digium.com
Thu Aug 11 15:50:34 CDT 2016


George Joseph has posted comments on this change.

Change subject: res_sorcery_config.c: Cleanup ao2 container usage idioms.
......................................................................


Patch Set 1: Code-Review-1

(1 comment)

https://gerrit.asterisk.org/#/c/3491/1/res/res_sorcery_config.c
File res/res_sorcery_config.c:

PS1, Line 113: tatic int sorcery_config_hash(const void *obj, const int flags)
             : {
             : 	const char *key;
             : 
             : 	switch (flags & OBJ_SEARCH_MASK) {
             : 	case OBJ_SEARCH_KEY:
             : 		key = obj;
             : 		break;
             : 	case OBJ_SEARCH_OBJECT:
             : 		key = ast_sorcery_object_get_id(obj);
             : 		break;
             : 	default:
             : 		/* Hash can only work on something with a full key. */
             : 		ast_assert(0);
             : 		return 0;
             : 	}
             : 	return ast_str_hash(key);
             : }
             : 
             : /*! \brief Comparator function for sorcery objects */
             : static int sorcery_config_cmp(void *obj, void *arg, int flags)
             : {
             : 	const void *object_left = obj;
             : 	const void *object_right = arg;
             : 	const char *right_key = arg;
             : 	int cmp;
             : 
             : 	switch (flags & OBJ_SEARCH_MASK) {
             : 	case OBJ_SEARCH_OBJECT:
             : 		right_key = ast_sorcery_object_get_id(object_right);
             : 		/* Fall through */
             : 	case OBJ_SEARCH_KEY:
             : 		cmp = strcmp(ast_sorcery_object_get_id(object_left), right_key);
             : 		break;
             : 	case OBJ_SEARCH_PARTIAL_KEY:
             : 		/* Not supported by container. */
             : 		ast_assert(0);
             : 		return 0;
             : 	default:
             : 		cmp = 0;
             : 		break;
             : 	}
             : 	if (cmp) {
             : 		return 0;
             : 	}
             : 	return CMP_MATCH;
             : }
You could use the standard ast_sorcery_object_id_hash and ast_sorcery_object_id_compare functions.

If you don't want to use those, you could even use 
AO2_STRING_FIELD_HASH_FN and AO2_STRING_FIELD_CMP_FN


-- 
To view, visit https://gerrit.asterisk.org/3491
To unsubscribe, visit https://gerrit.asterisk.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Iad24b335fb121a2bc7f1d048ab7420569edcba5a
Gerrit-PatchSet: 1
Gerrit-Project: asterisk
Gerrit-Branch: 13
Gerrit-Owner: Richard Mudgett <rmudgett at digium.com>
Gerrit-Reviewer: George Joseph <gjoseph at digium.com>
Gerrit-Reviewer: Matt Jordan <mjordan at digium.com>
Gerrit-HasComments: Yes



More information about the asterisk-code-review mailing list