X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=blobdiff_plain;f=plugins%2Fplugin.c;h=15f55a7f4d640585ea9fa0563add873c082dc0d4;hp=8714d68981de98bac73dbf839530016a0940393d;hb=2bd8a567becb9934d52fe95aa8a722322ab660f8;hpb=60703bc038ef936ecabf7f6a5b656adf223ab681 diff --git a/plugins/plugin.c b/plugins/plugin.c index 8714d689..15f55a7f 100644 --- a/plugins/plugin.c +++ b/plugins/plugin.c @@ -26,6 +26,12 @@ * SOFTWARE. */ +#include +#include +#include + +static void bt_plugin_destroy(struct bt_ctf_ref *ref); + const char *bt_plugin_get_name(struct bt_plugin *plugin) { const char *ret = NULL; @@ -102,14 +108,14 @@ void bt_plugin_put(struct bt_plugin *plugin) BT_HIDDEN enum bt_plugin_status bt_plugin_init(struct bt_plugin *plugin, const char *name, - void *user_data, bt_plugin_destroy_func user_destroy_func, + void *user_data, bt_plugin_destroy_cb user_destroy_func, enum bt_plugin_type plugin_type, - bt_plugin_destroy_func plugin_destroy) + bt_plugin_destroy_cb plugin_destroy) { enum bt_plugin_status ret = BT_PLUGIN_STATUS_OK; if (!plugin || !name || name[0] == '\0' || - !destroy_func || !private_data) { + !user_destroy_func || !user_data || !plugin_destroy) { ret = BT_PLUGIN_STATUS_INVAL; goto end; } @@ -132,20 +138,20 @@ end: static void bt_plugin_destroy(struct bt_ctf_ref *ref) { - struct bt_ctf_plugin *plugin = NULL; + struct bt_plugin *plugin = NULL; if (!ref) { return; } - plugin = container_of(ref, struct bt_plugin, parent); + plugin = container_of(ref, struct bt_plugin, ref_count); /** * Destroy user data, base and source/filter/sink last since * it will deallocate the plugin. */ - assert(plugin->user_destroy_func); - plugin->user_destroy_func(plugin->user_data); + assert(plugin->user_data_destroy); + plugin->user_data_destroy(plugin->user_data); g_string_free(plugin->name, TRUE);