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/plugin-script-callback.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/plugin-script-callback.h')
-rw-r--r-- | src/plugins/plugin-script-callback.h | 50 |
1 files changed, 0 insertions, 50 deletions
diff --git a/src/plugins/plugin-script-callback.h b/src/plugins/plugin-script-callback.h deleted file mode 100644 index 0ff2fa1f1..000000000 --- a/src/plugins/plugin-script-callback.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (C) 2003-2016 Sébastien Helleu <flashcode@flashtux.org> - * - * This file is part of WeeChat, the extensible chat client. - * - * WeeChat is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * WeeChat is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with WeeChat. If not, see <http://www.gnu.org/licenses/>. - */ - -#ifndef WEECHAT_PLUGIN_SCRIPT_CALLBACK_H -#define WEECHAT_PLUGIN_SCRIPT_CALLBACK_H 1 - -struct t_plugin_script_cb -{ - void *script; /* pointer to script */ - char *function; /* script function called */ - char *data; /* data string for callback */ - struct t_config_file *config_file; /* not NULL for config file */ - struct t_config_section *config_section; /* not NULL for config section */ - struct t_config_option *config_option; /* not NULL for config option */ - struct t_hook *hook; /* not NULL for hook */ - struct t_gui_buffer *buffer; /* not NULL for buffer */ - struct t_gui_bar_item *bar_item; /* not NULL for bar item */ - struct t_upgrade_file *upgrade_file; /* not NULL for upgrade file */ - struct t_plugin_script_cb *prev_callback; /* link to next callback */ - struct t_plugin_script_cb *next_callback; /* link to previous callback */ -}; - -extern struct t_plugin_script_cb *plugin_script_callback_add (struct t_plugin_script *script, - const char *function, - const char *data); -extern void plugin_script_callback_remove (struct t_plugin_script *script, - struct t_plugin_script_cb *script_callback); -extern void plugin_script_callback_remove_all (struct t_plugin_script *script); -extern struct t_hdata *plugin_script_callback_hdata_callback_cb (void *data, - const char *hdata_name); -extern void plugin_script_callback_print_log (struct t_weechat_plugin *weechat_plugin, - struct t_plugin_script_cb *script_callback); - -#endif /* WEECHAT_PLUGIN_SCRIPT_CALLBACK_H */ |