Skip to content
Snippets Groups Projects
Commit b7af9c8b authored by Joshua Colp's avatar Joshua Colp Committed by Gerrit Code Review
Browse files

Merge "stasis: Remove stringfields and lock from change message."

parents 9b0808e2 56eb18f3
No related branches found
No related tags found
No related merge requests found
...@@ -806,11 +806,9 @@ int stasis_subscription_final_message(struct stasis_subscription *sub, struct st ...@@ -806,11 +806,9 @@ int stasis_subscription_final_message(struct stasis_subscription *sub, struct st
* \since 12 * \since 12
*/ */
struct stasis_subscription_change { struct stasis_subscription_change {
AST_DECLARE_STRING_FIELDS( struct stasis_topic *topic; /*!< The topic the subscription is/was subscribing to */
AST_STRING_FIELD(uniqueid); /*!< The unique ID associated with this subscription */ char *uniqueid; /*!< The unique ID associated with this subscription */
AST_STRING_FIELD(description); /*!< The description of the change to the subscription associated with the uniqueid */ char description[0]; /*!< The description of the change to the subscription associated with the uniqueid */
);
struct stasis_topic *topic; /*!< The topic the subscription is/was subscribing to */
}; };
/*! /*!
......
...@@ -1077,22 +1077,23 @@ static void subscription_change_dtor(void *obj) ...@@ -1077,22 +1077,23 @@ static void subscription_change_dtor(void *obj)
{ {
struct stasis_subscription_change *change = obj; struct stasis_subscription_change *change = obj;
ast_string_field_free_memory(change);
ao2_cleanup(change->topic); ao2_cleanup(change->topic);
} }
static struct stasis_subscription_change *subscription_change_alloc(struct stasis_topic *topic, const char *uniqueid, const char *description) static struct stasis_subscription_change *subscription_change_alloc(struct stasis_topic *topic, const char *uniqueid, const char *description)
{ {
size_t description_len = strlen(description) + 1;
struct stasis_subscription_change *change; struct stasis_subscription_change *change;
change = ao2_alloc(sizeof(struct stasis_subscription_change), subscription_change_dtor); change = ao2_alloc_options(sizeof(*change) + description_len + strlen(uniqueid) + 1,
if (!change || ast_string_field_init(change, 128)) { subscription_change_dtor, AO2_ALLOC_OPT_LOCK_NOLOCK);
ao2_cleanup(change); if (!change) {
return NULL; return NULL;
} }
ast_string_field_set(change, uniqueid, uniqueid); strcpy(change->description, description); /* SAFE */
ast_string_field_set(change, description, description); change->uniqueid = change->description + description_len;
strcpy(change->uniqueid, uniqueid); /* SAFE */
ao2_ref(topic, +1); ao2_ref(topic, +1);
change->topic = topic; change->topic = topic;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment