manager_channels.c: Reordered ast_manager_build_channel_state_string_prefix()

* Made not allocate memory if the channel snapshot is an internal channel.

* Free memory earlier when no longer needed.

Change-Id: Ia06e0c065f1bd095781aa3f4a626d58fa4d28b38
pull/9/head
Richard Mudgett 8 years ago
parent f041bc7863
commit bcfe172f8d

@ -488,16 +488,17 @@ struct ast_str *ast_manager_build_channel_state_string_prefix(
const struct ast_channel_snapshot *snapshot, const struct ast_channel_snapshot *snapshot,
const char *prefix) const char *prefix)
{ {
struct ast_str *out = ast_str_create(1024); struct ast_str *out;
int res = 0; char *caller_name;
char *caller_name, *connected_name; char *connected_name;
int res;
if (!out) { if (snapshot->tech_properties & AST_CHAN_TP_INTERNAL) {
return NULL; return NULL;
} }
if (snapshot->tech_properties & AST_CHAN_TP_INTERNAL) { out = ast_str_create(1024);
ast_free(out); if (!out) {
return NULL; return NULL;
} }
@ -534,10 +535,11 @@ struct ast_str *ast_manager_build_channel_state_string_prefix(
prefix, snapshot->uniqueid, prefix, snapshot->uniqueid,
prefix, snapshot->linkedid); prefix, snapshot->linkedid);
if (!res) {
ast_free(out);
ast_free(caller_name); ast_free(caller_name);
ast_free(connected_name); ast_free(connected_name);
if (!res) {
ast_free(out);
return NULL; return NULL;
} }
@ -553,9 +555,6 @@ struct ast_str *ast_manager_build_channel_state_string_prefix(
} }
} }
ast_free(caller_name);
ast_free(connected_name);
return out; return out;
} }

Loading…
Cancel
Save