summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSébastien Helleu <flashcode@flashtux.org>2017-06-10 16:21:11 +0200
committerSébastien Helleu <flashcode@flashtux.org>2017-06-10 16:21:11 +0200
commit54bf589d7da7b714002bf675f20c053426544d6f (patch)
treed0ce6d388ad7cfe9eb9e8b08ff5b589425b97d44
parent8c8a0c0826ce66c83b08baf9470a2e6a6140b201 (diff)
downloadweechat-54bf589d7da7b714002bf675f20c053426544d6f.zip
core, plugins: fix conditions to insert elements in linked lists
This removes scan-build warnings about dereference of last_xxx null pointers.
-rw-r--r--src/core/wee-config-file.c4
-rw-r--r--src/core/wee-config.c12
-rw-r--r--src/core/wee-infolist.c14
-rw-r--r--src/core/wee-proxy.c2
-rw-r--r--src/core/wee-upgrade-file.c2
-rw-r--r--src/gui/gui-bar-item.c2
-rw-r--r--src/gui/gui-buffer.c8
-rw-r--r--src/gui/gui-filter.c2
-rw-r--r--src/gui/gui-layout.c4
-rw-r--r--src/gui/gui-line.c6
-rw-r--r--src/gui/gui-window.c2
-rw-r--r--src/plugins/exec/exec.c2
-rw-r--r--src/plugins/irc/irc-channel.c2
-rw-r--r--src/plugins/irc/irc-ignore.c2
-rw-r--r--src/plugins/irc/irc-nick.c2
-rw-r--r--src/plugins/irc/irc-notify.c2
-rw-r--r--src/plugins/irc/irc-raw.c2
-rw-r--r--src/plugins/irc/irc-redirect.c4
-rw-r--r--src/plugins/irc/irc-server.c4
-rw-r--r--src/plugins/logger/logger-buffer.c2
-rw-r--r--src/plugins/plugin.c2
-rw-r--r--src/plugins/relay/relay-client.c2
-rw-r--r--src/plugins/relay/relay-raw.c2
-rw-r--r--src/plugins/script/script-repo.c2
-rw-r--r--src/plugins/trigger/trigger.c6
25 files changed, 47 insertions, 47 deletions
diff --git a/src/core/wee-config-file.c b/src/core/wee-config-file.c
index 199b0d1bc..208a4924b 100644
--- a/src/core/wee-config-file.c
+++ b/src/core/wee-config-file.c
@@ -166,7 +166,7 @@ config_file_new (struct t_weechat_plugin *plugin, const char *name,
new_config_file->prev_config = last_config_file;
new_config_file->next_config = NULL;
- if (config_files)
+ if (last_config_file)
last_config_file->next_config = new_config_file;
else
config_files = new_config_file;
@@ -286,7 +286,7 @@ config_file_new_section (struct t_config_file *config_file, const char *name,
new_section->prev_section = config_file->last_section;
new_section->next_section = NULL;
- if (config_file->sections)
+ if (config_file->last_section)
config_file->last_section->next_section = new_section;
else
config_file->sections = new_section;
diff --git a/src/core/wee-config.c b/src/core/wee-config.c
index 441d8ef2b..3589a042a 100644
--- a/src/core/wee-config.c
+++ b/src/core/wee-config.c
@@ -1705,10 +1705,10 @@ config_weechat_proxy_read_cb (const void *pointer, void *data,
/* add new proxy at the end */
ptr_temp_proxy->prev_proxy = last_weechat_temp_proxy;
ptr_temp_proxy->next_proxy = NULL;
- if (!weechat_temp_proxies)
- weechat_temp_proxies = ptr_temp_proxy;
- else
+ if (last_weechat_temp_proxy)
last_weechat_temp_proxy->next_proxy = ptr_temp_proxy;
+ else
+ weechat_temp_proxies = ptr_temp_proxy;
last_weechat_temp_proxy = ptr_temp_proxy;
}
}
@@ -1785,10 +1785,10 @@ config_weechat_bar_read_cb (const void *pointer, void *data,
/* add new bar at the end */
ptr_temp_bar->prev_bar = last_gui_temp_bar;
ptr_temp_bar->next_bar = NULL;
- if (!gui_temp_bars)
- gui_temp_bars = ptr_temp_bar;
- else
+ if (last_gui_temp_bar)
last_gui_temp_bar->next_bar = ptr_temp_bar;
+ else
+ gui_temp_bars = ptr_temp_bar;
last_gui_temp_bar = ptr_temp_bar;
}
}
diff --git a/src/core/wee-infolist.c b/src/core/wee-infolist.c
index 99678cfbb..bf393e11c 100644
--- a/src/core/wee-infolist.c
+++ b/src/core/wee-infolist.c
@@ -57,7 +57,7 @@ infolist_new (struct t_weechat_plugin *plugin)
new_infolist->prev_infolist = last_weechat_infolist;
new_infolist->next_infolist = NULL;
- if (weechat_infolists)
+ if (last_weechat_infolist)
last_weechat_infolist->next_infolist = new_infolist;
else
weechat_infolists = new_infolist;
@@ -114,7 +114,7 @@ infolist_new_item (struct t_infolist *infolist)
new_item->prev_item = infolist->last_item;
new_item->next_item = NULL;
- if (infolist->items)
+ if (infolist->last_item)
infolist->last_item->next_item = new_item;
else
infolist->items = new_item;
@@ -150,7 +150,7 @@ infolist_new_var_integer (struct t_infolist_item *item,
new_var->prev_var = item->last_var;
new_var->next_var = NULL;
- if (item->vars)
+ if (item->last_var)
item->last_var->next_var = new_var;
else
item->vars = new_var;
@@ -184,7 +184,7 @@ infolist_new_var_string (struct t_infolist_item *item,
new_var->prev_var = item->last_var;
new_var->next_var = NULL;
- if (item->vars)
+ if (item->last_var)
item->last_var->next_var = new_var;
else
item->vars = new_var;
@@ -218,7 +218,7 @@ infolist_new_var_pointer (struct t_infolist_item *item,
new_var->prev_var = item->last_var;
new_var->next_var = NULL;
- if (item->vars)
+ if (item->last_var)
item->last_var->next_var = new_var;
else
item->vars = new_var;
@@ -255,7 +255,7 @@ infolist_new_var_buffer (struct t_infolist_item *item,
new_var->prev_var = item->last_var;
new_var->next_var = NULL;
- if (item->vars)
+ if (item->last_var)
item->last_var->next_var = new_var;
else
item->vars = new_var;
@@ -291,7 +291,7 @@ infolist_new_var_time (struct t_infolist_item *item,
new_var->prev_var = item->last_var;
new_var->next_var = NULL;
- if (item->vars)
+ if (item->last_var)
item->last_var->next_var = new_var;
else
item->vars = new_var;
diff --git a/src/core/wee-proxy.c b/src/core/wee-proxy.c
index 57489daa3..2bb1b1880 100644
--- a/src/core/wee-proxy.c
+++ b/src/core/wee-proxy.c
@@ -403,7 +403,7 @@ proxy_new_with_options (const char *name,
/* add proxy to proxies list */
new_proxy->prev_proxy = last_weechat_proxy;
- if (weechat_proxies)
+ if (last_weechat_proxy)
last_weechat_proxy->next_proxy = new_proxy;
else
weechat_proxies = new_proxy;
diff --git a/src/core/wee-upgrade-file.c b/src/core/wee-upgrade-file.c
index 89694c8f6..d2bfbd69d 100644
--- a/src/core/wee-upgrade-file.c
+++ b/src/core/wee-upgrade-file.c
@@ -245,7 +245,7 @@ upgrade_file_new (const char *filename,
/* add upgrade file to list of upgrade files */
new_upgrade_file->prev_upgrade = last_upgrade_file;
new_upgrade_file->next_upgrade = NULL;
- if (upgrade_files)
+ if (last_upgrade_file)
last_upgrade_file->next_upgrade = new_upgrade_file;
else
upgrade_files = new_upgrade_file;
diff --git a/src/gui/gui-bar-item.c b/src/gui/gui-bar-item.c
index f9e59b285..33b6e9113 100644
--- a/src/gui/gui-bar-item.c
+++ b/src/gui/gui-bar-item.c
@@ -557,7 +557,7 @@ gui_bar_item_new (struct t_weechat_plugin *plugin, const char *name,
/* add bar item to bar items queue */
new_bar_item->prev_item = last_gui_bar_item;
- if (gui_bar_items)
+ if (last_gui_bar_item)
last_gui_bar_item->next_item = new_bar_item;
else
gui_bar_items = new_bar_item;
diff --git a/src/gui/gui-buffer.c b/src/gui/gui-buffer.c
index 54a52a2cf..f30a78db7 100644
--- a/src/gui/gui-buffer.c
+++ b/src/gui/gui-buffer.c
@@ -501,7 +501,7 @@ gui_buffer_insert (struct t_gui_buffer *buffer)
}
buffer->prev_buffer = last_gui_buffer;
buffer->next_buffer = NULL;
- if (gui_buffers)
+ if (last_gui_buffer)
last_gui_buffer->next_buffer = buffer;
else
gui_buffers = buffer;
@@ -3670,7 +3670,7 @@ gui_buffer_sort_by_layout_number ()
/* move the buffer in a temporary list */
ptr_buffer->prev_buffer = last_extra_buffer;
ptr_buffer->next_buffer = NULL;
- if (extra_buffers)
+ if (last_extra_buffer)
last_extra_buffer->next_buffer = ptr_buffer;
else
extra_buffers = ptr_buffer;
@@ -3807,7 +3807,7 @@ gui_buffer_undo_add (struct t_gui_buffer *buffer)
/* add undo to the list */
new_undo->prev_undo = buffer->last_input_undo;
new_undo->next_undo = NULL;
- if (buffer->input_undo)
+ if (buffer->last_input_undo)
(buffer->last_input_undo)->next_undo = new_undo;
else
buffer->input_undo = new_undo;
@@ -4014,7 +4014,7 @@ gui_buffer_visited_add (struct t_gui_buffer *buffer)
new_buffer_visited->prev_buffer = last_gui_buffer_visited;
new_buffer_visited->next_buffer = NULL;
- if (gui_buffers_visited)
+ if (last_gui_buffer_visited)
last_gui_buffer_visited->next_buffer = new_buffer_visited;
else
gui_buffers_visited = new_buffer_visited;
diff --git a/src/gui/gui-filter.c b/src/gui/gui-filter.c
index e32f2be4a..15338b022 100644
--- a/src/gui/gui-filter.c
+++ b/src/gui/gui-filter.c
@@ -417,7 +417,7 @@ gui_filter_new (int enabled, const char *name, const char *buffer_name,
/* add filter to filters list */
new_filter->prev_filter = last_gui_filter;
- if (gui_filters)
+ if (last_gui_filter)
last_gui_filter->next_filter = new_filter;
else
gui_filters = new_filter;
diff --git a/src/gui/gui-layout.c b/src/gui/gui-layout.c
index 4ca295a87..2a0128f55 100644
--- a/src/gui/gui-layout.c
+++ b/src/gui/gui-layout.c
@@ -122,7 +122,7 @@ gui_layout_add (struct t_gui_layout *layout)
layout->prev_layout = last_gui_layout;
layout->next_layout = NULL;
- if (gui_layouts)
+ if (last_gui_layout)
last_gui_layout->next_layout = layout;
else
gui_layouts = layout;
@@ -234,7 +234,7 @@ gui_layout_buffer_add (struct t_gui_layout *layout,
/* add layout buffer to list */
new_layout_buffer->prev_layout = layout->last_layout_buffer;
- if (layout->layout_buffers)
+ if (layout->last_layout_buffer)
(layout->last_layout_buffer)->next_layout = new_layout_buffer;
else
layout->layout_buffers = new_layout_buffer;
diff --git a/src/gui/gui-line.c b/src/gui/gui-line.c
index 63cfa6523..c34a7a970 100644
--- a/src/gui/gui-line.c
+++ b/src/gui/gui-line.c
@@ -937,10 +937,10 @@ gui_line_add_to_list (struct t_gui_lines *lines,
{
int prefix_length, prefix_is_nick;
- if (!lines->first_line)
- lines->first_line = line;
- else
+ if (lines->last_line)
(lines->last_line)->next_line = line;
+ else
+ lines->first_line = line;
line->prev_line = lines->last_line;
line->next_line = NULL;
lines->last_line = line;
diff --git a/src/gui/gui-window.c b/src/gui/gui-window.c
index f3aaafc31..722dce13e 100644
--- a/src/gui/gui-window.c
+++ b/src/gui/gui-window.c
@@ -678,7 +678,7 @@ gui_window_new (struct t_gui_window *parent_window, struct t_gui_buffer *buffer,
/* add window to windows queue */
new_window->prev_window = last_gui_window;
- if (gui_windows)
+ if (last_gui_window)
last_gui_window->next_window = new_window;
else
gui_windows = new_window;
diff --git a/src/plugins/exec/exec.c b/src/plugins/exec/exec.c
index 1ae407fbe..10fbd6386 100644
--- a/src/plugins/exec/exec.c
+++ b/src/plugins/exec/exec.c
@@ -136,7 +136,7 @@ exec_add ()
new_exec_cmd->prev_cmd = last_exec_cmd;
new_exec_cmd->next_cmd = NULL;
- if (exec_cmds)
+ if (last_exec_cmd)
last_exec_cmd->next_cmd = new_exec_cmd;
else
exec_cmds = new_exec_cmd;
diff --git a/src/plugins/irc/irc-channel.c b/src/plugins/irc/irc-channel.c
index 4a133d8f2..72bfaeeab 100644
--- a/src/plugins/irc/irc-channel.c
+++ b/src/plugins/irc/irc-channel.c
@@ -486,7 +486,7 @@ irc_channel_new (struct t_irc_server *server, int channel_type,
/* add new channel to channels list */
new_channel->prev_channel = server->last_channel;
new_channel->next_channel = NULL;
- if (server->channels)
+ if (server->last_channel)
(server->last_channel)->next_channel = new_channel;
else
server->channels = new_channel;
diff --git a/src/plugins/irc/irc-ignore.c b/src/plugins/irc/irc-ignore.c
index 884a81fea..cfc45d6c6 100644
--- a/src/plugins/irc/irc-ignore.c
+++ b/src/plugins/irc/irc-ignore.c
@@ -152,7 +152,7 @@ irc_ignore_new (const char *mask, const char *server, const char *channel)
/* add ignore to ignore list */
new_ignore->prev_ignore = last_irc_ignore;
- if (irc_ignore_list)
+ if (last_irc_ignore)
last_irc_ignore->next_ignore = new_ignore;
else
irc_ignore_list = new_ignore;
diff --git a/src/plugins/irc/irc-nick.c b/src/plugins/irc/irc-nick.c
index a05c35f55..cf3b294c2 100644
--- a/src/plugins/irc/irc-nick.c
+++ b/src/plugins/irc/irc-nick.c
@@ -528,7 +528,7 @@ irc_nick_new (struct t_irc_server *server, struct t_irc_channel *channel,
/* add nick to end of list */
new_nick->prev_nick = channel->last_nick;
- if (channel->nicks)
+ if (channel->last_nick)
channel->last_nick->next_nick = new_nick;
else
channel->nicks = new_nick;
diff --git a/src/plugins/irc/irc-notify.c b/src/plugins/irc/irc-notify.c
index 93d2b4b8f..579046b29 100644
--- a/src/plugins/irc/irc-notify.c
+++ b/src/plugins/irc/irc-notify.c
@@ -208,7 +208,7 @@ irc_notify_new (struct t_irc_server *server, const char *nick, int check_away)
/* add notify to notify list on server */
new_notify->prev_notify = server->last_notify;
- if (server->notify_list)
+ if (server->last_notify)
server->last_notify->next_notify = new_notify;
else
server->notify_list = new_notify;
diff --git a/src/plugins/irc/irc-raw.c b/src/plugins/irc/irc-raw.c
index 62c38c924..d669aed10 100644
--- a/src/plugins/irc/irc-raw.c
+++ b/src/plugins/irc/irc-raw.c
@@ -205,7 +205,7 @@ irc_raw_message_add_to_list (time_t date, const char *prefix,
/* add message to list */
new_raw_message->prev_message = last_irc_raw_message;
new_raw_message->next_message = NULL;
- if (irc_raw_messages)
+ if (last_irc_raw_message)
last_irc_raw_message->next_message = new_raw_message;
else
irc_raw_messages = new_raw_message;
diff --git a/src/plugins/irc/irc-redirect.c b/src/plugins/irc/irc-redirect.c
index 70f0b3ba2..44648a00d 100644
--- a/src/plugins/irc/irc-redirect.c
+++ b/src/plugins/irc/irc-redirect.c
@@ -325,7 +325,7 @@ irc_redirect_pattern_new (const char *name, int temp_pattern, int timeout,
/* add redirect pattern to end of list */
new_redirect_pattern->prev_redirect = last_irc_redirect_pattern;
- if (irc_redirect_patterns)
+ if (last_irc_redirect_pattern)
last_irc_redirect_pattern->next_redirect = new_redirect_pattern;
else
irc_redirect_patterns = new_redirect_pattern;
@@ -484,7 +484,7 @@ irc_redirect_new_with_commands (struct t_irc_server *server,
/* add redirect to end of list */
new_redirect->prev_redirect = server->last_redirect;
- if (server->redirects)
+ if (server->last_redirect)
(server->last_redirect)->next_redirect = new_redirect;
else
server->redirects = new_redirect;
diff --git a/src/plugins/irc/irc-server.c b/src/plugins/irc/irc-server.c
index 07c36fc01..3ea5438e6 100644
--- a/src/plugins/irc/irc-server.c
+++ b/src/plugins/irc/irc-server.c
@@ -1129,7 +1129,7 @@ irc_server_alloc (const char *name)
/* add new server to queue */
new_server->prev_server = last_irc_server;
new_server->next_server = NULL;
- if (irc_servers)
+ if (last_irc_server)
last_irc_server->next_server = new_server;
else
irc_servers = new_server;
@@ -1558,7 +1558,7 @@ irc_server_outqueue_add (struct t_irc_server *server, int priority,
new_outqueue->prev_outqueue = server->last_outqueue[priority];
new_outqueue->next_outqueue = NULL;
- if (server->outqueue[priority])
+ if (server->last_outqueue[priority])
server->last_outqueue[priority]->next_outqueue = new_outqueue;
else
server->outqueue[priority] = new_outqueue;
diff --git a/src/plugins/logger/logger-buffer.c b/src/plugins/logger/logger-buffer.c
index 3de6b1ac2..ef2363935 100644
--- a/src/plugins/logger/logger-buffer.c
+++ b/src/plugins/logger/logger-buffer.c
@@ -98,7 +98,7 @@ logger_buffer_add (struct t_gui_buffer *buffer, int log_level)
new_logger_buffer->prev_buffer = last_logger_buffer;
new_logger_buffer->next_buffer = NULL;
- if (logger_buffers)
+ if (last_logger_buffer)
last_logger_buffer->next_buffer = new_logger_buffer;
else
logger_buffers = new_logger_buffer;
diff --git a/src/plugins/plugin.c b/src/plugins/plugin.c
index 7065dfcca..6d9d6583a 100644
--- a/src/plugins/plugin.c
+++ b/src/plugins/plugin.c
@@ -904,7 +904,7 @@ plugin_load (const char *filename, int init_plugin, int argc, char **argv)
/* add new plugin to list */
new_plugin->prev_plugin = last_weechat_plugin;
new_plugin->next_plugin = NULL;
- if (weechat_plugins)
+ if (last_weechat_plugin)
last_weechat_plugin->next_plugin = new_plugin;
else
weechat_plugins = new_plugin;
diff --git a/src/plugins/relay/relay-client.c b/src/plugins/relay/relay-client.c
index e7bf52a88..a334db02c 100644
--- a/src/plugins/relay/relay-client.c
+++ b/src/plugins/relay/relay-client.c
@@ -739,7 +739,7 @@ relay_client_outqueue_add (struct t_relay_client *client,
new_outqueue->prev_outqueue = client->last_outqueue;
new_outqueue->next_outqueue = NULL;
- if (client->outqueue)
+ if (client->last_outqueue)
client->last_outqueue->next_outqueue = new_outqueue;
else
client->outqueue = new_outqueue;
diff --git a/src/plugins/relay/relay-raw.c b/src/plugins/relay/relay-raw.c
index eda322ffa..9efd72bec 100644
--- a/src/plugins/relay/relay-raw.c
+++ b/src/plugins/relay/relay-raw.c
@@ -205,7 +205,7 @@ relay_raw_message_add_to_list (time_t date, const char *prefix,
/* add message to list */
new_raw_message->prev_message = last_relay_raw_message;
new_raw_message->next_message = NULL;
- if (relay_raw_messages)
+ if (last_relay_raw_message)
last_relay_raw_message->next_message = new_raw_message;
else
relay_raw_messages = new_raw_message;
diff --git a/src/plugins/script/script-repo.c b/src/plugins/script/script-repo.c
index 7321146c6..c29e9876e 100644
--- a/src/plugins/script/script-repo.c
+++ b/src/plugins/script/script-repo.c
@@ -563,7 +563,7 @@ script_repo_add (struct t_script_repo *script)
/* add script to the end */
script->prev_script = last_script_repo;
script->next_script = NULL;
- if (scripts_repo)
+ if (last_script_repo)
last_script_repo->next_script = script;
else
scripts_repo = script;
diff --git a/src/plugins/trigger/trigger.c b/src/plugins/trigger/trigger.c
index 506d13fbd..4cd2e7272 100644
--- a/src/plugins/trigger/trigger.c
+++ b/src/plugins/trigger/trigger.c
@@ -839,10 +839,10 @@ trigger_add (struct t_trigger *trigger,
/* add trigger to end of list */
trigger->prev_trigger = *last_list_trigger;
trigger->next_trigger = NULL;
- if (!*list_triggers)
- *list_triggers = trigger;
- else
+ if (*last_list_trigger)
(*last_list_trigger)->next_trigger = trigger;
+ else
+ *list_triggers = trigger;
*last_list_trigger = trigger;
}
}