From: Corey Farrell Date: Wed, 26 Dec 2018 18:30:07 +0000 (-0500) Subject: stasis: Fix ABI between DEVMODE and non-DEVMODE. X-Git-Tag: 16.2.0-rc1~30^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=44a7faca21bf29bd7e09404d5dd200a0c8e95a8f;p=thirdparty%2Fasterisk.git stasis: Fix ABI between DEVMODE and non-DEVMODE. Create compatibility stubs for maximum ABI compatibility. ASTERISK-28212 #close Change-Id: I872c04842ab6b61e9dd6d37e4166bc619aa20626 --- diff --git a/include/asterisk/stasis.h b/include/asterisk/stasis.h index 2e274a67ba..357f34edd4 100644 --- a/include/asterisk/stasis.h +++ b/include/asterisk/stasis.h @@ -604,9 +604,9 @@ void stasis_subscription_cb_noop(void *data, struct stasis_subscription *sub, st * has been subscribed. This occurs immediately before accepted message * types can be set and the callback must expect to receive it. */ -#ifdef AST_DEVMODE struct stasis_subscription *__stasis_subscribe(struct stasis_topic *topic, stasis_subscription_cb callback, void *data, const char *file, int lineno, const char *func); +#ifdef AST_DEVMODE #define stasis_subscribe(topic, callback, data) __stasis_subscribe(topic, callback, data, __FILE__, __LINE__, __PRETTY_FUNCTION__) #else struct stasis_subscription *stasis_subscribe(struct stasis_topic *topic, @@ -639,9 +639,9 @@ struct stasis_subscription *stasis_subscribe(struct stasis_topic *topic, * has been subscribed. This occurs immediately before accepted message * types can be set and the callback must expect to receive it. */ -#ifdef AST_DEVMODE struct stasis_subscription *__stasis_subscribe_pool(struct stasis_topic *topic, stasis_subscription_cb callback, void *data, const char *file, int lineno, const char *func); +#ifdef AST_DEVMODE #define stasis_subscribe_pool(topic, callback, data) __stasis_subscribe_pool(topic, callback, data, __FILE__, __LINE__, __PRETTY_FUNCTION__) #else struct stasis_subscription *stasis_subscribe_pool(struct stasis_topic *topic, diff --git a/include/asterisk/stasis_internal.h b/include/asterisk/stasis_internal.h index c9df032210..b3e56f129b 100644 --- a/include/asterisk/stasis_internal.h +++ b/include/asterisk/stasis_internal.h @@ -60,7 +60,6 @@ * \return \c NULL on error. * \since 12 */ -#ifdef AST_DEVMODE struct stasis_subscription *internal_stasis_subscribe( struct stasis_topic *topic, stasis_subscription_cb callback, @@ -70,13 +69,5 @@ struct stasis_subscription *internal_stasis_subscribe( const char *file, int lineno, const char *func); -#else -struct stasis_subscription *internal_stasis_subscribe( - struct stasis_topic *topic, - stasis_subscription_cb callback, - void *data, - int needs_mailbox, - int use_thread_pool); -#endif #endif /* STASIS_INTERNAL_H_ */ diff --git a/include/asterisk/stasis_message_router.h b/include/asterisk/stasis_message_router.h index 93a2140cb4..fefbea0a0e 100644 --- a/include/asterisk/stasis_message_router.h +++ b/include/asterisk/stasis_message_router.h @@ -55,9 +55,9 @@ struct stasis_message_router; * * \since 12 */ -#ifdef AST_DEVMODE struct stasis_message_router *__stasis_message_router_create( struct stasis_topic *topic, const char *file, int lineno, const char *func); +#ifdef AST_DEVMODE #define stasis_message_router_create(topic) __stasis_message_router_create(topic, __FILE__, __LINE__, __PRETTY_FUNCTION__) #else struct stasis_message_router *stasis_message_router_create( @@ -77,9 +77,9 @@ struct stasis_message_router *stasis_message_router_create( * * \since 12.8.0 */ -#ifdef AST_DEVMODE struct stasis_message_router *__stasis_message_router_create_pool( struct stasis_topic *topic, const char *file, int lineno, const char *func); +#ifdef AST_DEVMODE #define stasis_message_router_create_pool(topic) __stasis_message_router_create_pool(topic, __FILE__, __LINE__, __PRETTY_FUNCTION__) #else struct stasis_message_router *stasis_message_router_create_pool( diff --git a/main/stasis.c b/main/stasis.c index 3216e21739..b743f990eb 100644 --- a/main/stasis.c +++ b/main/stasis.c @@ -436,10 +436,11 @@ struct stasis_topic *stasis_topic_create(const char *name) res |= AST_VECTOR_INIT(&topic->upstream_topics, 0); #ifdef AST_DEVMODE topic->statistics = stasis_topic_statistics_create(name); - if (!topic->name || !topic->statistics || res) { + if (!topic->name || !topic->statistics || res) #else - if (!topic->name || res) { + if (!topic->name || res) #endif + { ao2_ref(topic, -1); return NULL; } @@ -640,7 +641,6 @@ static struct stasis_subscription_statistics *stasis_subscription_statistics_cre } #endif -#ifdef AST_DEVMODE struct stasis_subscription *internal_stasis_subscribe( struct stasis_topic *topic, stasis_subscription_cb callback, @@ -650,14 +650,6 @@ struct stasis_subscription *internal_stasis_subscribe( const char *file, int lineno, const char *func) -#else -struct stasis_subscription *internal_stasis_subscribe( - struct stasis_topic *topic, - stasis_subscription_cb callback, - void *data, - int needs_mailbox, - int use_thread_pool) -#endif { struct stasis_subscription *sub; @@ -728,7 +720,6 @@ struct stasis_subscription *internal_stasis_subscribe( return sub; } -#ifdef AST_DEVMODE struct stasis_subscription *__stasis_subscribe( struct stasis_topic *topic, stasis_subscription_cb callback, @@ -739,17 +730,7 @@ struct stasis_subscription *__stasis_subscribe( { return internal_stasis_subscribe(topic, callback, data, 1, 0, file, lineno, func); } -#else -struct stasis_subscription *stasis_subscribe( - struct stasis_topic *topic, - stasis_subscription_cb callback, - void *data) -{ - return internal_stasis_subscribe(topic, callback, data, 1, 0); -} -#endif -#ifdef AST_DEVMODE struct stasis_subscription *__stasis_subscribe_pool( struct stasis_topic *topic, stasis_subscription_cb callback, @@ -760,15 +741,6 @@ struct stasis_subscription *__stasis_subscribe_pool( { return internal_stasis_subscribe(topic, callback, data, 1, 1, file, lineno, func); } -#else -struct stasis_subscription *stasis_subscribe_pool( - struct stasis_topic *topic, - stasis_subscription_cb callback, - void *data) -{ - return internal_stasis_subscribe(topic, callback, data, 1, 1); -} -#endif static int sub_cleanup(void *data) { @@ -2666,3 +2638,31 @@ int stasis_init(void) return 0; } + +#ifdef AST_DEVMODE +#undef stasis_subscribe +struct stasis_subscription *stasis_subscribe( + struct stasis_topic *topic, + stasis_subscription_cb callback, + void *data); +#undef stasis_subscribe_pool +struct stasis_subscription *stasis_subscribe_pool( + struct stasis_topic *topic, + stasis_subscription_cb callback, + void *data); +#endif +struct stasis_subscription *stasis_subscribe( + struct stasis_topic *topic, + stasis_subscription_cb callback, + void *data) +{ + return internal_stasis_subscribe(topic, callback, data, 1, 0, __FILE__, __LINE__, __PRETTY_FUNCTION__); +} + +struct stasis_subscription *stasis_subscribe_pool( + struct stasis_topic *topic, + stasis_subscription_cb callback, + void *data) +{ + return internal_stasis_subscribe(topic, callback, data, 1, 1, __FILE__, __LINE__, __PRETTY_FUNCTION__); +} diff --git a/main/stasis_cache.c b/main/stasis_cache.c index 73a469e6a0..ee8a1dd4b7 100644 --- a/main/stasis_cache.c +++ b/main/stasis_cache.c @@ -984,11 +984,7 @@ struct stasis_caching_topic *stasis_caching_topic_create(struct stasis_topic *or } ast_free(new_name); -#ifdef AST_DEVMODE caching_topic->sub = internal_stasis_subscribe(original_topic, caching_topic_exec, caching_topic, 0, 0, __FILE__, __LINE__, __PRETTY_FUNCTION__); -#else - caching_topic->sub = internal_stasis_subscribe(original_topic, caching_topic_exec, caching_topic, 0, 0); -#endif if (caching_topic->sub == NULL) { ao2_ref(caching_topic, -1); diff --git a/main/stasis_message_router.c b/main/stasis_message_router.c index 9a390ef3f3..f320c346b9 100644 --- a/main/stasis_message_router.c +++ b/main/stasis_message_router.c @@ -204,14 +204,9 @@ static void router_dispatch(void *data, } } -#ifdef AST_DEVMODE static struct stasis_message_router *stasis_message_router_create_internal( struct stasis_topic *topic, int use_thread_pool, const char *file, int lineno, const char *func) -#else -static struct stasis_message_router *stasis_message_router_create_internal( - struct stasis_topic *topic, int use_thread_pool) -#endif { int res; struct stasis_message_router *router; @@ -230,19 +225,11 @@ static struct stasis_message_router *stasis_message_router_create_internal( return NULL; } -#ifdef AST_DEVMODE if (use_thread_pool) { router->subscription = __stasis_subscribe_pool(topic, router_dispatch, router, file, lineno, func); } else { router->subscription = __stasis_subscribe(topic, router_dispatch, router, file, lineno, func); } -#else - if (use_thread_pool) { - router->subscription = stasis_subscribe_pool(topic, router_dispatch, router); - } else { - router->subscription = stasis_subscribe(topic, router_dispatch, router); - } -#endif if (!router->subscription) { ao2_ref(router, -1); @@ -256,33 +243,17 @@ static struct stasis_message_router *stasis_message_router_create_internal( return router; } -#ifdef AST_DEVMODE struct stasis_message_router *__stasis_message_router_create( struct stasis_topic *topic, const char *file, int lineno, const char *func) { return stasis_message_router_create_internal(topic, 0, file, lineno, func); } -#else -struct stasis_message_router *stasis_message_router_create( - struct stasis_topic *topic) -{ - return stasis_message_router_create_internal(topic, 0); -} -#endif -#ifdef AST_DEVMODE struct stasis_message_router *__stasis_message_router_create_pool( struct stasis_topic *topic, const char *file, int lineno, const char *func) { return stasis_message_router_create_internal(topic, 1, file, lineno, func); } -#else -struct stasis_message_router *stasis_message_router_create_pool( - struct stasis_topic *topic) -{ - return stasis_message_router_create_internal(topic, 1); -} -#endif void stasis_message_router_unsubscribe(struct stasis_message_router *router) { @@ -440,3 +411,23 @@ void stasis_message_router_accept_formatters(struct stasis_message_router *route return; } + +#ifdef AST_DEVMODE +#undef stasis_message_router_create +struct stasis_message_router *stasis_message_router_create( + struct stasis_topic *topic); +#undef stasis_message_router_create_pool +struct stasis_message_router *stasis_message_router_create_pool( + struct stasis_topic *topic); +#endif +struct stasis_message_router *stasis_message_router_create( + struct stasis_topic *topic) +{ + return stasis_message_router_create_internal(topic, 0, __FILE__, __LINE__, __PRETTY_FUNCTION__); +} + +struct stasis_message_router *stasis_message_router_create_pool( + struct stasis_topic *topic) +{ + return stasis_message_router_create_internal(topic, 1, __FILE__, __LINE__, __PRETTY_FUNCTION__); +}