Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
plugin_description ? plugin_description : "None");
printf_verbose("\tcomponent description: %s\n",
component_description ? component_description : "None");
plugin_description ? plugin_description : "None");
printf_verbose("\tcomponent description: %s\n",
component_description ? component_description : "None");
+
+ bt_put(plugin);
+ bt_put(component_class);
- factory->current_plugin = plugin;
- component_status = bt_plugin_register_component_classes(plugin,
- factory);
- factory->current_plugin = NULL;
+ BT_MOVE(factory->current_plugin, plugin);
+ component_status = bt_plugin_register_component_classes(
+ factory->current_plugin, factory);
+ BT_PUT(factory->current_plugin);
if (component_status != BT_COMPONENT_STATUS_OK) {
switch (component_status) {
case BT_COMPONENT_STATUS_NOMEM:
if (component_status != BT_COMPONENT_STATUS_OK) {
switch (component_status) {
case BT_COMPONENT_STATUS_NOMEM:
if (type != BT_COMPONENT_TYPE_UNKNOWN) {
if (type != bt_component_class_get_type(
component_class)) {
if (type != BT_COMPONENT_TYPE_UNKNOWN) {
if (type != bt_component_class_get_type(
component_class)) {
assert(cur_plugin_name);
if (strcmp(plugin_name, cur_plugin_name)) {
assert(cur_plugin_name);
if (strcmp(plugin_name, cur_plugin_name)) {
assert(cur_cc_name);
if (strcmp(component_name, cur_cc_name)) {
assert(cur_cc_name);
if (strcmp(component_name, cur_cc_name)) {
/* All criteria met. */
goto match;
}
/* All criteria met. */
goto match;
}
}
bt_object_init(component, bt_component_destroy);
}
bt_object_init(component, bt_component_destroy);
- component->class = bt_get(component_class);
component->name = g_string_new(name);
if (!component->name) {
BT_PUT(component);
component->name = g_string_new(name);
if (!component->name) {
BT_PUT(component);