relay: remove buffer from synchronized buffers when it is closed (fix memory leak)

v2.8-utf8proc
Sébastien Helleu 2017-03-26 08:55:08 +02:00
parent df833d9ba8
commit 7ceacabd46
2 changed files with 9 additions and 2 deletions

View File

@ -40,6 +40,7 @@ Bug fixes::
* core: fix delayed refresh when the signal SIGWINCH is received (terminal resized), send signal "signal_sigwinch" after refreshes (issue #902)
* irc: fix parsing of message 324 (modes) when there is a colon before the modes (issue #913)
* relay: remove buffer from synchronized buffers when it is closed (fix memory leak)
Build::

View File

@ -755,14 +755,20 @@ relay_weechat_protocol_signal_buffer_cb (const void *pointer, void *data,
{
snprintf (cmd_hdata, sizeof (cmd_hdata),
"buffer:0x%lx", (long unsigned int)ptr_buffer);
weechat_hashtable_remove (RELAY_WEECHAT_DATA(ptr_client, buffers_nicklist),
ptr_buffer);
relay_weechat_msg_add_hdata (msg, cmd_hdata,
"number,full_name");
relay_weechat_msg_send (ptr_client, msg);
relay_weechat_msg_free (msg);
}
}
/* remove buffer from hashtables */
weechat_hashtable_remove (
RELAY_WEECHAT_DATA(ptr_client, buffers_sync),
weechat_buffer_get_string (ptr_buffer, "full_name"));
weechat_hashtable_remove (
RELAY_WEECHAT_DATA(ptr_client, buffers_nicklist),
ptr_buffer);
}
return WEECHAT_RC_OK;