Initialize component class init callback
authorJérémie Galarneau <jeremie.galarneau@efficios.com>
Wed, 24 Feb 2016 23:17:20 +0000 (18:17 -0500)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Sat, 27 May 2017 16:57:26 +0000 (12:57 -0400)
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
include/babeltrace/plugin/component-class-internal.h
lib/plugin-system/component-class.c
lib/plugin-system/component-factory.c
lib/plugin-system/component.c

index f23f256672b0655e97d397e5d5af60783e157f0e..351e5c06ba0e4bbdf2a6130832d858933cc08845 100644 (file)
@@ -49,6 +49,7 @@ int bt_component_class_init(
 BT_HIDDEN
 struct bt_component_class *bt_component_class_create(
                enum bt_component_type type, const char *name,
-               const char *description, struct bt_plugin *plugin);
+               const char *description, bt_component_init_cb init,
+               struct bt_plugin *plugin);
 
 #endif /* BABELTRACE_PLUGIN_COMPONENT_CLASS_INTERNAL_H */
index e0e2e0bf2e4e9cd8c42ae8297909277279b85a6f..9f5ccb0634fdf6fdf9c3a116fbe3b5b0bb033e56 100644 (file)
@@ -52,7 +52,8 @@ void bt_component_class_destroy(struct bt_object *obj)
 BT_HIDDEN
 struct bt_component_class *bt_component_class_create(
                enum bt_component_type type, const char *name,
-               const char *description, struct bt_plugin *plugin)
+               const char *description, bt_component_init_cb init,
+               struct bt_plugin *plugin)
 {
        struct bt_component_class *class;
 
@@ -63,6 +64,7 @@ struct bt_component_class *bt_component_class_create(
 
        bt_object_init(class, bt_component_class_destroy);
        class->type = type;
+       class->init = init;
        class->name = g_string_new(name);
        class->description = g_string_new(description);
        if (!class->name || !class->description) {
index 0952f461561a6a297575602a646bdbc8a48e9c6b..6601a0a619c00b736533379d3b33c4cbcba6a90a 100644 (file)
@@ -431,7 +431,7 @@ add_component_class(struct bt_component_factory *factory, const char *name,
        }
 
        component_class = bt_component_class_create(type, name, description,
-               factory->current_plugin);
+               init, factory->current_plugin);
        g_ptr_array_add(factory->component_classes, component_class);
 end:
        return ret;
index 667601e1b7ea08190e7543565a7803d8c85906bf..483788acd6be9381f7fa3cb156d09ddd105f118f 100644 (file)
@@ -126,7 +126,7 @@ struct bt_component *bt_component_create(
        bt_object_init(component, bt_component_destroy);
        component->class = bt_get(component_class);
        component->name = g_string_new(name);
-       if (component->name) {
+       if (!component->name) {
                BT_PUT(component);
                goto end;
        }
This page took 0.025843 seconds and 4 git commands to generate.