1
0
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:
Sebastien Helleu
2005-02-22 19:32:37 +00:00
parent 559b651669
commit 24d0c49ae4
4 changed files with 22 additions and 2 deletions
+7 -1
View File
@@ -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 */
+4
View File
@@ -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 */
+7 -1
View File
@@ -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 */
+4
View File
@@ -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 */