From 16d449ef380b4bc65b133ba7cd03e09a259392e5 Mon Sep 17 00:00:00 2001 From: "David M. Lee" Date: Thu, 26 Sep 2013 15:41:47 +0000 Subject: [PATCH] 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 --- main/channel.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) 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;