From 4940218257e47f6ab8844b2158ba0060422bbedc Mon Sep 17 00:00:00 2001 From: Steffen Jaeckel Date: Thu, 13 Mar 2025 13:01:36 +0100 Subject: [PATCH] Minimize `strdup()` operations in plugins. Instead of dup'ing each string before free'ing it, simply re-use the same. Signed-off-by: Steffen Jaeckel --- src/plugins/plugins.c | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/src/plugins/plugins.c b/src/plugins/plugins.c index cb27eb15..7c8bf2a3 100644 --- a/src/plugins/plugins.c +++ b/src/plugins/plugins.c @@ -571,8 +571,7 @@ plugins_pre_chat_message_send(const char* const barejid, const char* message) new_message = plugin->pre_chat_message_send(plugin, barejid, curr_message); if (new_message) { free(curr_message); - curr_message = strdup(new_message); - free(new_message); + curr_message = new_message; } else { free(curr_message); g_list_free(values); @@ -617,8 +616,7 @@ plugins_pre_room_message_display(const char* const barejid, const char* const ni new_message = plugin->pre_room_message_display(plugin, barejid, nick, curr_message); if (new_message) { free(curr_message); - curr_message = strdup(new_message); - free(new_message); + curr_message = new_message; } curr = g_list_next(curr); } @@ -658,8 +656,7 @@ plugins_pre_room_message_send(const char* const barejid, const char* message) new_message = plugin->pre_room_message_send(plugin, barejid, curr_message); if (new_message) { free(curr_message); - curr_message = strdup(new_message); - free(new_message); + curr_message = new_message; } else { free(curr_message); g_list_free(values); @@ -728,8 +725,7 @@ plugins_pre_priv_message_display(const char* const fulljid, const char* message) new_message = plugin->pre_priv_message_display(plugin, jidp->barejid, jidp->resourcepart, curr_message); if (new_message) { free(curr_message); - curr_message = strdup(new_message); - free(new_message); + curr_message = new_message; } curr = g_list_next(curr); } @@ -771,8 +767,7 @@ plugins_pre_priv_message_send(const char* const fulljid, const char* const messa new_message = plugin->pre_priv_message_send(plugin, jidp->barejid, jidp->resourcepart, curr_message); if (new_message) { free(curr_message); - curr_message = strdup(new_message); - free(new_message); + curr_message = new_message; } else { free(curr_message); g_list_free(values); @@ -820,8 +815,7 @@ plugins_on_message_stanza_send(const char* const text) new_stanza = plugin->on_message_stanza_send(plugin, curr_stanza); if (new_stanza) { free(curr_stanza); - curr_stanza = strdup(new_stanza); - free(new_stanza); + curr_stanza = new_stanza; } curr = g_list_next(curr); } @@ -867,8 +861,7 @@ plugins_on_presence_stanza_send(const char* const text) new_stanza = plugin->on_presence_stanza_send(plugin, curr_stanza); if (new_stanza) { free(curr_stanza); - curr_stanza = strdup(new_stanza); - free(new_stanza); + curr_stanza = new_stanza; } curr = g_list_next(curr); } @@ -914,8 +907,7 @@ plugins_on_iq_stanza_send(const char* const text) new_stanza = plugin->on_iq_stanza_send(plugin, curr_stanza); if (new_stanza) { free(curr_stanza); - curr_stanza = strdup(new_stanza); - free(new_stanza); + curr_stanza = new_stanza; } curr = g_list_next(curr); }