diff --git a/src/core/plugin.c b/src/core/plugin.c
index 5df7059e9c6412b1c49bfc49813563a534f7d031..431264266ea66df7b10eadbe5c1d425487b1dac8 100644 (file)
--- a/src/core/plugin.c
+++ b/src/core/plugin.c
return SDB_PLUGIN_CB(obj);
} /* sdb_plugin_find_by_name */
+/*
+ * private types
+ */
+
static int
sdb_plugin_cb_init(sdb_object_t *obj, va_list ap)
{
sdb_object_deref(SDB_PLUGIN_CB(obj)->cb_user_data);
} /* sdb_plugin_cb_destroy */
+static sdb_type_t sdb_plugin_cb_type = {
+ sizeof(sdb_plugin_cb_t),
+
+ sdb_plugin_cb_init,
+ sdb_plugin_cb_destroy
+};
+
+static sdb_type_t sdb_plugin_collector_cb_type = {
+ sizeof(sdb_plugin_collector_cb_t),
+
+ sdb_plugin_cb_init,
+ sdb_plugin_cb_destroy
+};
+
static int
sdb_plugin_add_callback(sdb_llist_t **list, const char *type,
const char *name, void *callback, sdb_object_t *user_data)
if (! *list)
return -1;
- obj = sdb_object_create(sizeof(sdb_plugin_cb_t), sdb_plugin_cb_init,
- sdb_plugin_cb_destroy, list, type, name, callback, user_data);
+ obj = sdb_object_create(sdb_plugin_cb_type,
+ list, type, name, callback, user_data);
if (! obj)
return -1;
@@ -435,8 +453,7 @@ sdb_plugin_register_collector(const char *name, sdb_plugin_collector_cb callback
if (! collector_list)
return -1;
- obj = sdb_object_create(sizeof(sdb_plugin_collector_cb_t),
- sdb_plugin_cb_init, sdb_plugin_cb_destroy,
+ obj = sdb_object_create(sdb_plugin_collector_cb_type,
&collector_list, "collector", name, callback, user_data);
if (! obj)
return -1;