From: David M. Lee Date: Thu, 26 Sep 2013 15:41:47 +0000 (+0000) Subject: Minor performance bump by not allocate manager variable struct if we don't need it X-Git-Tag: 12.0.0-alpha2~24^2~61 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=16d449ef380b4bc65b133ba7cd03e09a259392e5;p=thirdparty%2Fasterisk.git Minor performance bump by not allocate manager variable struct if we don't need it git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@399887 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/main/channel.c b/main/channel.c index 7ba3e6c39c..e8ce5e0c53 100644 --- a/main/channel.c +++ b/main/channel.c @@ -7549,14 +7549,19 @@ struct varshead *ast_channel_get_manager_vars(struct ast_channel *chan) RAII_VAR(struct ast_str *, tmp, NULL, ast_free); struct manager_channel_variable *mcv; - ret = ao2_alloc(sizeof(*ret), varshead_dtor); - tmp = ast_str_create(16); - if (!ret || !tmp) { return NULL; } AST_RWLIST_RDLOCK(&channelvars); + + if (AST_LIST_EMPTY(&channelvars)) { + return NULL; + } + + ret = ao2_alloc(sizeof(*ret), varshead_dtor); + tmp = ast_str_create(16); + AST_LIST_TRAVERSE(&channelvars, mcv, entry) { const char *val = NULL; struct ast_var_t *var;