diff --git a/daemon/call_interfaces.c b/daemon/call_interfaces.c index fa24ebc75..a96c0100a 100644 --- a/daemon/call_interfaces.c +++ b/daemon/call_interfaces.c @@ -1968,7 +1968,7 @@ static const char *call_offer_answer_ng(struct ng_buffer *ngbuf, bencode_item_t const endpoint_t *sin) { const char *errstr; - AUTO_CLEANUP(str sdp, str_free_dup) = STR_NULL; + g_auto(str) sdp = STR_NULL; AUTO_CLEANUP(GQueue parsed, sdp_free) = G_QUEUE_INIT; AUTO_CLEANUP(GQueue streams, sdp_streams_free) = G_QUEUE_INIT; struct call *call; @@ -3408,8 +3408,8 @@ const char *call_publish_ng(struct ng_buffer *ngbuf, bencode_item_t *input, benc g_auto(sdp_ng_flags) flags; AUTO_CLEANUP(GQueue parsed, sdp_free) = G_QUEUE_INIT; AUTO_CLEANUP(GQueue streams, sdp_streams_free) = G_QUEUE_INIT; - AUTO_CLEANUP(str sdp_in, str_free_dup) = STR_NULL; - AUTO_CLEANUP(str sdp_out, str_free_dup) = STR_NULL; + g_auto(str) sdp_in = STR_NULL; + g_auto(str) sdp_out = STR_NULL; AUTO_CLEANUP_NULL(struct call *call, call_unlock_release); call_ng_process_flags(&flags, input, OP_PUBLISH); @@ -3465,7 +3465,7 @@ const char *call_subscribe_request_ng(bencode_item_t *input, bencode_item_t *out char rand_buf[65]; AUTO_CLEANUP_NULL(struct call *call, call_unlock_release); AUTO_CLEANUP(GQueue srms, media_subscriptions_clear) = G_QUEUE_INIT; - AUTO_CLEANUP(str sdp_out, str_free_dup) = STR_NULL; + g_auto(str) sdp_out = STR_NULL; /* get source monologue */ err = media_block_match_mult(&call, &srms, &flags, input, OP_REQUEST); diff --git a/daemon/janus.c b/daemon/janus.c index aafb7455e..4c1eee012 100644 --- a/daemon/janus.c +++ b/daemon/janus.c @@ -841,7 +841,7 @@ static const char *janus_videoroom_configure(struct websocket_message *wm, struc if (strcmp(jsep_type, "offer")) return "Not an offer"; - AUTO_CLEANUP(str sdp_in, str_free_dup) = STR_INIT_DUP(jsep_sdp); + g_auto(str) sdp_in = STR_INIT_DUP(jsep_sdp); g_auto(sdp_ng_flags) flags; AUTO_CLEANUP(GQueue parsed, sdp_free) = G_QUEUE_INIT; @@ -864,7 +864,7 @@ static const char *janus_videoroom_configure(struct websocket_message *wm, struc // XXX check there's only one audio and one video stream? - AUTO_CLEANUP(str sdp_out, str_free_dup) = STR_NULL; + g_auto(str) sdp_out = STR_NULL; ret = sdp_create(&sdp_out, ml, &flags, true, true); if (ret) return "Publish error"; @@ -945,7 +945,7 @@ static const char *janus_videoroom_start(struct websocket_message *wm, struct ja if (strcmp(jsep_type, "answer")) return "Not an answer"; - AUTO_CLEANUP(str sdp_in, str_free_dup) = STR_INIT_DUP(jsep_sdp); + g_auto(str) sdp_in = STR_INIT_DUP(jsep_sdp); g_auto(sdp_ng_flags) flags; AUTO_CLEANUP(GQueue parsed, sdp_free) = G_QUEUE_INIT; @@ -1502,7 +1502,7 @@ static const char *janus_message(struct websocket_message *wm, JsonReader *reade json_builder_begin_object(builder); // { char *jsep_type_out = NULL; - str jsep_sdp_out = STR_NULL; + g_auto(str) jsep_sdp_out = STR_NULL; LOCK(&janus_lock); @@ -1531,8 +1531,6 @@ static const char *janus_message(struct websocket_message *wm, JsonReader *reade json_builder_end_object(builder); // } } - str_free_dup(&jsep_sdp_out); - return err; } diff --git a/lib/str.h b/lib/str.h index 8081487a5..ca0ff69ad 100644 --- a/lib/str.h +++ b/lib/str.h @@ -188,6 +188,8 @@ INLINE size_t str_uri_encode(char *out, const str *in); str *str_uri_decode_len(const char *in, size_t in_len); +G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(str, str_free_dup); +