summaryrefslogtreecommitdiff
path: root/res/stasis/stasis_bridge.c
diff options
context:
space:
mode:
authorCorey Farrell <git@cfware.com>2018-01-06 03:17:15 -0500
committerCorey Farrell <git@cfware.com>2018-01-08 17:51:28 -0600
commit17480f6ea460cc1e8de532c0ce0a989247858606 (patch)
treed24a8846eca3ee41280e642b9e131ade938ff621 /res/stasis/stasis_bridge.c
parent7cc614d22363398747bd2c1aa81d3422cf2d07c5 (diff)
res_stasis: Reduce RAII_VAR usage.
In addition to being a micro-optimization (RAII_VAR has overhead), this change improves output of REF_DEBUG. Unfortunately when RAII_VAR calls ao2_cleanup it does so from a generated _dtor_varname function. For example this caused _dtor_app to release a reference instead of __stasis_app_unregister. Change-Id: I4ce67120583a446babf9adeec678b71d37fcd9e5
Diffstat (limited to 'res/stasis/stasis_bridge.c')
-rw-r--r--res/stasis/stasis_bridge.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/res/stasis/stasis_bridge.c b/res/stasis/stasis_bridge.c
index 81b35e308..701cbaea8 100644
--- a/res/stasis/stasis_bridge.c
+++ b/res/stasis/stasis_bridge.c
@@ -252,7 +252,7 @@ static int bridge_stasis_moving(struct ast_bridge_channel *bridge_channel, void
{
if (src->v_table == &bridge_stasis_v_table &&
dst->v_table != &bridge_stasis_v_table) {
- RAII_VAR(struct stasis_app_control *, control, NULL, ao2_cleanup);
+ struct stasis_app_control *control;
struct ast_channel *chan;
chan = bridge_channel->chan;
@@ -265,6 +265,7 @@ static int bridge_stasis_moving(struct ast_bridge_channel *bridge_channel, void
stasis_app_channel_set_stasis_end_published(chan);
app_send_end_msg(control_app(control), chan);
+ ao2_ref(control, -1);
}
return -1;