stasis_endpoints: Remove silly usage of RAII_VAR.
authorCorey Farrell <git@cfware.com>
Tue, 9 Jan 2018 16:57:50 +0000 (11:57 -0500)
committerCorey Farrell <git@cfware.com>
Wed, 10 Jan 2018 02:36:52 +0000 (20:36 -0600)
Change-Id: Ic099dc552f36c353c89783a4bcfd09f010432733

main/stasis_endpoints.c

index 5cee22e..336da49 100644 (file)
@@ -305,8 +305,8 @@ static void endpoint_blob_dtor(void *obj)
 struct stasis_message *ast_endpoint_blob_create(struct ast_endpoint *endpoint,
        struct stasis_message_type *type, struct ast_json *blob)
 {
-       RAII_VAR(struct ast_endpoint_blob *, obj, NULL, ao2_cleanup);
-       RAII_VAR(struct stasis_message *, msg, NULL, ao2_cleanup);
+       struct ast_endpoint_blob *obj;
+       struct stasis_message *msg;
 
        if (!type) {
                return NULL;
@@ -321,37 +321,40 @@ struct stasis_message *ast_endpoint_blob_create(struct ast_endpoint *endpoint,
 
        if (endpoint) {
                if (!(obj->snapshot = ast_endpoint_snapshot_create(endpoint))) {
+                       ao2_ref(obj, -1);
+
                        return NULL;
                }
        }
 
        obj->blob = ast_json_ref(blob);
+       msg = stasis_message_create(type, obj);
+       ao2_ref(obj, -1);
 
-       if (!(msg = stasis_message_create(type, obj))) {
-               return NULL;
-       }
-
-       ao2_ref(msg, +1);
        return msg;
 }
 
 void ast_endpoint_blob_publish(struct ast_endpoint *endpoint, struct stasis_message_type *type,
        struct ast_json *blob)
 {
-       RAII_VAR(struct stasis_message *, message, NULL, ao2_cleanup);
-       if (blob) {
-               message = ast_endpoint_blob_create(endpoint, type, blob);
+       struct stasis_message *message;
+
+       if (!blob) {
+               return;
        }
+
+       message = ast_endpoint_blob_create(endpoint, type, blob);
        if (message) {
                stasis_publish(ast_endpoint_topic(endpoint), message);
+               ao2_ref(message, -1);
        }
 }
 
 struct ast_endpoint_snapshot *ast_endpoint_latest_snapshot(const char *tech,
        const char *name)
 {
-       RAII_VAR(char *, id, NULL, ast_free);
-       RAII_VAR(struct stasis_message *, msg, NULL, ao2_cleanup);
+       char *id = NULL;
+       struct stasis_message *msg;
        struct ast_endpoint_snapshot *snapshot;
 
        if (ast_strlen_zero(name)) {
@@ -364,8 +367,8 @@ struct ast_endpoint_snapshot *ast_endpoint_latest_snapshot(const char *tech,
        }
        ast_tech_to_upper(id);
 
-       msg = stasis_cache_get(ast_endpoint_cache(),
-               ast_endpoint_snapshot_type(), id);
+       msg = stasis_cache_get(ast_endpoint_cache(), ast_endpoint_snapshot_type(), id);
+       ast_free(id);
        if (!msg) {
                return NULL;
        }
@@ -374,6 +377,8 @@ struct ast_endpoint_snapshot *ast_endpoint_latest_snapshot(const char *tech,
        ast_assert(snapshot != NULL);
 
        ao2_ref(snapshot, +1);
+       ao2_ref(msg, -1);
+
        return snapshot;
 }
 
@@ -406,7 +411,7 @@ struct ast_json *ast_endpoint_snapshot_to_json(
        const struct ast_endpoint_snapshot *snapshot,
        const struct stasis_message_sanitizer *sanitize)
 {
-       RAII_VAR(struct ast_json *, json, NULL, ast_json_unref);
+       struct ast_json *json;
        struct ast_json *channel_array;
        int i;
 
@@ -424,6 +429,8 @@ struct ast_json *ast_endpoint_snapshot_to_json(
                int res = ast_json_object_set(json, "max_channels",
                        ast_json_integer_create(snapshot->max_channels));
                if (res != 0) {
+                       ast_json_unref(json);
+
                        return NULL;
                }
        }
@@ -441,11 +448,13 @@ struct ast_json *ast_endpoint_snapshot_to_json(
                res = ast_json_array_append(channel_array,
                        ast_json_string_create(snapshot->channel_ids[i]));
                if (res != 0) {
+                       ast_json_unref(json);
+
                        return NULL;
                }
        }
 
-       return ast_json_ref(json);
+       return json;
 }
 
 static void endpoints_stasis_cleanup(void)