diff options
author | Sébastien Helleu <flashcode@flashtux.org> | 2016-03-21 18:11:21 +0100 |
---|---|---|
committer | Sébastien Helleu <flashcode@flashtux.org> | 2016-03-21 18:11:21 +0100 |
commit | cf6aca1619c32422a43fa3d82e0674f6b7b49fe9 (patch) | |
tree | 65392ef12eab877f544fe306fe0abb98214ddebd /src/plugins/relay/relay-client.h | |
parent | 6d764b64c50adb19309a9de14bfeafac648ab47a (diff) | |
download | weechat-cf6aca1619c32422a43fa3d82e0674f6b7b49fe9.zip |
core: add pointer in some callbacks (closes #406)
This pointer is the first argument received by callbacks, and the
existing argument "data" is now automatically freed by WeeChat when the
object containing the callback is removed.
With this new pointer, the linked list of callbacks in scripts has been
removed. This will improve speed of scripts (using a lot of hooks),
reduce memory used by scripts and reduce time to unload scripts.
Following functions are affected in the C API:
* exec_on_files
* config_new
* config_new_section
* config_new_option
* hook_command
* hook_command_run
* hook_timer
* hook_fd
* hook_process
* hook_process_hashtable
* hook_connect
* hook_print
* hook_signal
* hook_hsignal
* hook_config
* hook_completion
* hook_modifier
* hook_info
* hook_info_hashtable
* hook_infolist
* hook_hdata
* hook_focus
* unhook_all_plugin
* buffer_new
* bar_item_new
* upgrade_new
* upgrade_read
Diffstat (limited to 'src/plugins/relay/relay-client.h')
-rw-r--r-- | src/plugins/relay/relay-client.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/plugins/relay/relay-client.h b/src/plugins/relay/relay-client.h index 89f3166cd..f76eaacd7 100644 --- a/src/plugins/relay/relay-client.h +++ b/src/plugins/relay/relay-client.h @@ -131,12 +131,13 @@ extern struct t_relay_client *relay_client_search_by_id (int id); extern int relay_client_status_search (const char *name); extern int relay_client_count_active_by_port (int server_port); extern void relay_client_set_desc (struct t_relay_client *client); -extern int relay_client_recv_cb (void *arg_client, int fd); +extern int relay_client_recv_cb (const void *pointer, void *data, int fd); extern int relay_client_send (struct t_relay_client *client, enum t_relay_client_msg_type msg_type, const char *data, int data_size, const char *message_raw_buffer); -extern int relay_client_timer_cb (void *data, int remaining_calls); +extern int relay_client_timer_cb (const void *pointer, void *data, + int remaining_calls); extern struct t_relay_client *relay_client_new (int sock, const char *address, struct t_relay_server *server); extern struct t_relay_client *relay_client_new_with_infolist (struct t_infolist *infolist); |