]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
manager_channels.c: Reordered ast_manager_build_channel_state_string_prefix()
authorRichard Mudgett <rmudgett@digium.com>
Wed, 31 Jan 2018 23:27:58 +0000 (17:27 -0600)
committerRichard Mudgett <rmudgett@digium.com>
Thu, 1 Feb 2018 18:19:08 +0000 (12:19 -0600)
* Made not allocate memory if the channel snapshot is an internal channel.

* Free memory earlier when no longer needed.

Change-Id: Ia06e0c065f1bd095781aa3f4a626d58fa4d28b38

main/manager_channels.c

index 71c17322ad0bb41c5941cfab888018010ab1b479..6938c6ee4ca8ac6060e1914be915e0cc95e7f8e9 100644 (file)
@@ -463,16 +463,17 @@ struct ast_str *ast_manager_build_channel_state_string_prefix(
                const struct ast_channel_snapshot *snapshot,
                const char *prefix)
 {
-       struct ast_str *out = ast_str_create(1024);
-       int res = 0;
-       char *caller_name, *connected_name;
+       struct ast_str *out;
+       char *caller_name;
+       char *connected_name;
+       int res;
 
-       if (!out) {
+       if (snapshot->tech_properties & AST_CHAN_TP_INTERNAL) {
                return NULL;
        }
 
-       if (snapshot->tech_properties & AST_CHAN_TP_INTERNAL) {
-               ast_free(out);
+       out = ast_str_create(1024);
+       if (!out) {
                return NULL;
        }
 
@@ -509,10 +510,11 @@ struct ast_str *ast_manager_build_channel_state_string_prefix(
                prefix, snapshot->uniqueid,
                prefix, snapshot->linkedid);
 
+       ast_free(caller_name);
+       ast_free(connected_name);
+
        if (!res) {
                ast_free(out);
-               ast_free(caller_name);
-               ast_free(connected_name);
                return NULL;
        }
 
@@ -528,9 +530,6 @@ struct ast_str *ast_manager_build_channel_state_string_prefix(
                }
        }
 
-       ast_free(caller_name);
-       ast_free(connected_name);
-
        return out;
 }