diff --git a/main/stasis_channels.c b/main/stasis_channels.c index fe65c1766a5495958141cc69042681a810157b3d..45ec53d7f73af05d64eeb401814bd006258d18a5 100644 --- a/main/stasis_channels.c +++ b/main/stasis_channels.c @@ -366,14 +366,9 @@ void ast_channel_publish_dial(struct ast_channel *caller, struct ast_channel *pe static struct stasis_message *create_channel_blob_message(struct ast_channel_snapshot *snapshot, struct stasis_message_type *type, struct ast_json *blob) - { - RAII_VAR(struct stasis_message *, msg, NULL, ao2_cleanup); - RAII_VAR(struct ast_channel_blob *, obj, NULL, ao2_cleanup); - - if (blob == NULL) { - blob = ast_json_null(); - } + struct stasis_message *msg; + struct ast_channel_blob *obj; obj = ao2_alloc(sizeof(*obj), channel_blob_dtor); if (!obj) { @@ -384,14 +379,13 @@ static struct stasis_message *create_channel_blob_message(struct ast_channel_sna obj->snapshot = snapshot; ao2_ref(obj->snapshot, +1); } + if (!blob) { + blob = ast_json_null(); + } obj->blob = ast_json_ref(blob); msg = stasis_message_create(type, obj); - if (!msg) { - return NULL; - } - - ao2_ref(msg, +1); + ao2_cleanup(obj); return msg; }