From b535921484f1a1a083fc1582be5a21722abb16ee Mon Sep 17 00:00:00 2001 From: Steffen Jaeckel Date: Mon, 9 Jan 2023 18:00:47 +0100 Subject: introduce `auto_jid` and refcounting in `Jid` This also fixes a memory leak from within `_handle_groupchat()` in [0]. [0] src/xmpp/message.c Signed-off-by: Steffen Jaeckel --- src/xmpp/jid.h | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/xmpp/jid.h') diff --git a/src/xmpp/jid.h b/src/xmpp/jid.h index dae6cb2d..e55ea0c7 100644 --- a/src/xmpp/jid.h +++ b/src/xmpp/jid.h @@ -40,6 +40,7 @@ struct jid_t { + unsigned int refcnt; char* str; char* localpart; char* domainpart; @@ -53,6 +54,10 @@ typedef struct jid_t Jid; Jid* jid_create(const gchar* const str); Jid* jid_create_from_bare_and_resource(const char* const barejid, const char* const resource); void jid_destroy(Jid* jid); +void jid_ref(Jid* jid); + +void jid_auto_destroy(Jid** str); +#define auto_jid __attribute__((__cleanup__(jid_auto_destroy))) gboolean jid_is_valid_room_form(Jid* jid); char* create_fulljid(const char* const barejid, const char* const resource); -- cgit 1.4.1-2-gfad0