[Asterisk-code-review] stasis: Fix ABI between DEVMODE and non-DEVMODE. (asterisk[13])

George Joseph asteriskteam at digium.com
Fri Jan 4 07:56:00 CST 2019


George Joseph has submitted this change and it was merged. ( https://gerrit.asterisk.org/10840 )

Change subject: stasis: Fix ABI between DEVMODE and non-DEVMODE.
......................................................................

stasis: Fix ABI between DEVMODE and non-DEVMODE.

Create compatibility stubs for maximum ABI compatibility.

ASTERISK-28212 #close

Change-Id: I872c04842ab6b61e9dd6d37e4166bc619aa20626
---
M include/asterisk/stasis.h
M include/asterisk/stasis_internal.h
M include/asterisk/stasis_message_router.h
M main/stasis.c
M main/stasis_cache.c
M main/stasis_message_router.c
6 files changed, 55 insertions(+), 77 deletions(-)

Approvals:
  Joshua C. Colp: Looks good to me, but someone else must approve
  Matthew Fredrickson: Looks good to me, approved
  George Joseph: Approved for Submit



diff --git a/include/asterisk/stasis.h b/include/asterisk/stasis.h
index 472e48c..a009097 100644
--- a/include/asterisk/stasis.h
+++ b/include/asterisk/stasis.h
@@ -614,9 +614,9 @@
  * 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,
@@ -649,9 +649,9 @@
  * 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 c9df032..b3e56f1 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 @@
 	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 93a2140..fefbea0 100644
--- a/include/asterisk/stasis_message_router.h
+++ b/include/asterisk/stasis_message_router.h
@@ -55,9 +55,9 @@
  *
  * \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 @@
  *
  * \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 8793b2b..386a4ac 100644
--- a/main/stasis.c
+++ b/main/stasis.c
@@ -438,10 +438,11 @@
 	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;
 	}
@@ -642,7 +643,6 @@
 }
 #endif
 
-#ifdef AST_DEVMODE
 struct stasis_subscription *internal_stasis_subscribe(
 	struct stasis_topic *topic,
 	stasis_subscription_cb callback,
@@ -652,14 +652,6 @@
 	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;
 
@@ -730,7 +722,6 @@
 	return sub;
 }
 
-#ifdef AST_DEVMODE
 struct stasis_subscription *__stasis_subscribe(
 	struct stasis_topic *topic,
 	stasis_subscription_cb callback,
@@ -741,17 +732,7 @@
 {
 	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,
@@ -762,15 +743,6 @@
 {
 	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)
 {
@@ -2668,3 +2640,31 @@
 
 	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 de17bd7..c7041f1 100644
--- a/main/stasis_cache.c
+++ b/main/stasis_cache.c
@@ -986,11 +986,7 @@
 	}
 	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 14752cf..8ada0dd 100644
--- a/main/stasis_message_router.c
+++ b/main/stasis_message_router.c
@@ -206,14 +206,9 @@
 	}
 }
 
-#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;
@@ -232,19 +227,11 @@
 		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);
@@ -258,33 +245,17 @@
 	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)
 {
@@ -442,3 +413,23 @@
 
 	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__);
+}

-- 
To view, visit https://gerrit.asterisk.org/10840
To unsubscribe, or for help writing mail filters, visit https://gerrit.asterisk.org/settings

Gerrit-Project: asterisk
Gerrit-Branch: 13
Gerrit-MessageType: merged
Gerrit-Change-Id: I872c04842ab6b61e9dd6d37e4166bc619aa20626
Gerrit-Change-Number: 10840
Gerrit-PatchSet: 1
Gerrit-Owner: Corey Farrell <git at cfware.com>
Gerrit-Reviewer: Corey Farrell <git at cfware.com>
Gerrit-Reviewer: Friendly Automation (1000185)
Gerrit-Reviewer: George Joseph <gjoseph at digium.com>
Gerrit-Reviewer: Joshua C. Colp <jcolp at digium.com>
Gerrit-Reviewer: Matthew Fredrickson <creslin at digium.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-code-review/attachments/20190104/4e5f69dc/attachment-0001.html>


More information about the asterisk-code-review mailing list