mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-19 19:20:35 +00:00
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
This commit is contained in:
@@ -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);
|
||||||
|
|
||||||
|
ast_free(caller_name);
|
||||||
|
ast_free(connected_name);
|
||||||
|
|
||||||
if (!res) {
|
if (!res) {
|
||||||
ast_free(out);
|
ast_free(out);
|
||||||
ast_free(caller_name);
|
|
||||||
ast_free(connected_name);
|
|
||||||
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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user