mirror of
https://github.com/weechat/weechat.git
synced 2026-07-01 15:26:37 +02:00
Fixed crash when quitting WeeChat
This commit is contained in:
@@ -337,7 +337,7 @@ gui_infobar_printf (int time_displayed, int color, char *message, ...)
|
||||
void
|
||||
gui_window_free (t_gui_window *window)
|
||||
{
|
||||
if (window->buffer->num_displayed > 0)
|
||||
if (window->buffer && (window->buffer->num_displayed > 0))
|
||||
window->buffer->num_displayed--;
|
||||
|
||||
/* remove window from windows list */
|
||||
@@ -458,6 +458,12 @@ gui_buffer_free (t_gui_buffer *buffer, int switch_to_another)
|
||||
if (last_gui_buffer == buffer)
|
||||
last_gui_buffer = buffer->prev_buffer;
|
||||
|
||||
for (ptr_win = gui_windows; ptr_win; ptr_win = ptr_win->next_window)
|
||||
{
|
||||
if (ptr_win->buffer == buffer)
|
||||
ptr_win->buffer = NULL;
|
||||
}
|
||||
|
||||
free (buffer);
|
||||
|
||||
/* always at least one buffer */
|
||||
|
||||
@@ -949,6 +949,10 @@ server_disconnect (t_irc_server *server, int reconnect)
|
||||
{
|
||||
t_irc_channel *ptr_channel;
|
||||
|
||||
/* not connected/connecting to server */
|
||||
if (!server->is_connected && (server->child_pid == 0))
|
||||
return;
|
||||
|
||||
if (server->is_connected)
|
||||
{
|
||||
/* write disconnection message on each channel/private buffer */
|
||||
|
||||
@@ -337,7 +337,7 @@ gui_infobar_printf (int time_displayed, int color, char *message, ...)
|
||||
void
|
||||
gui_window_free (t_gui_window *window)
|
||||
{
|
||||
if (window->buffer->num_displayed > 0)
|
||||
if (window->buffer && (window->buffer->num_displayed > 0))
|
||||
window->buffer->num_displayed--;
|
||||
|
||||
/* remove window from windows list */
|
||||
@@ -458,6 +458,12 @@ gui_buffer_free (t_gui_buffer *buffer, int switch_to_another)
|
||||
if (last_gui_buffer == buffer)
|
||||
last_gui_buffer = buffer->prev_buffer;
|
||||
|
||||
for (ptr_win = gui_windows; ptr_win; ptr_win = ptr_win->next_window)
|
||||
{
|
||||
if (ptr_win->buffer == buffer)
|
||||
ptr_win->buffer = NULL;
|
||||
}
|
||||
|
||||
free (buffer);
|
||||
|
||||
/* always at least one buffer */
|
||||
|
||||
@@ -949,6 +949,10 @@ server_disconnect (t_irc_server *server, int reconnect)
|
||||
{
|
||||
t_irc_channel *ptr_channel;
|
||||
|
||||
/* not connected/connecting to server */
|
||||
if (!server->is_connected && (server->child_pid == 0))
|
||||
return;
|
||||
|
||||
if (server->is_connected)
|
||||
{
|
||||
/* write disconnection message on each channel/private buffer */
|
||||
|
||||
Reference in New Issue
Block a user