From 8c444f823b4834a426f65a75ae1f3f978a9745d0 Mon Sep 17 00:00:00 2001 From: Kinsey Moore Date: Fri, 15 Mar 2013 12:58:23 +0000 Subject: Make stasis unsubscription functions return NULL Unsubscribing things in Asterisk seems to very commonly follow with NULLing out the variable that was unsubscribed. This change makes that a bit simpler. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@383168 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- main/stasis.c | 5 +++-- main/stasis_cache.c | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) (limited to 'main') diff --git a/main/stasis.c b/main/stasis.c index d1f11537e..7f18bf5e1 100644 --- a/main/stasis.c +++ b/main/stasis.c @@ -172,7 +172,7 @@ struct stasis_subscription *stasis_subscribe(struct stasis_topic *topic, stasis_ return __stasis_subscribe(topic, callback, data, 1); } -void stasis_unsubscribe(struct stasis_subscription *sub) +struct stasis_subscription *stasis_unsubscribe(struct stasis_subscription *sub) { if (sub) { size_t i; @@ -186,12 +186,13 @@ void stasis_unsubscribe(struct stasis_subscription *sub) topic->subscribers[i] = topic->subscribers[--topic->num_subscribers_current]; /* Unsubscribing unrefs the subscription */ ao2_cleanup(sub); - return; + return NULL; } } ast_log(LOG_ERROR, "Internal error: subscription has invalid topic\n"); } + return NULL; } int stasis_subscription_is_subscribed(const struct stasis_subscription *sub) diff --git a/main/stasis_cache.c b/main/stasis_cache.c index f8518ce09..a82492870 100644 --- a/main/stasis_cache.c +++ b/main/stasis_cache.c @@ -65,7 +65,7 @@ struct stasis_topic *stasis_caching_get_topic(struct stasis_caching_topic *cachi return caching_topic->topic; } -void stasis_caching_unsubscribe(struct stasis_caching_topic *caching_topic) +struct stasis_caching_topic *stasis_caching_unsubscribe(struct stasis_caching_topic *caching_topic) { if (caching_topic) { if (stasis_subscription_is_subscribed(caching_topic->sub)) { @@ -74,6 +74,7 @@ void stasis_caching_unsubscribe(struct stasis_caching_topic *caching_topic) ast_log(LOG_ERROR, "stasis_caching_topic unsubscribed multiple times\n"); } } + return NULL; } struct cache_entry { -- cgit v1.2.3