lib: bt_object_{get,put}_ref(): accept a `const` parameter
[babeltrace.git] / lib / plugin / plugin-so.c
index b875ad68953598b5a2217977e96725d3e136d54f..1c3e348a04b759d07dcd5b56944fa99f84be37b7 100644 (file)
@@ -148,6 +148,8 @@ void bt_plugin_so_shared_lib_handle_destroy(struct bt_object *obj)
                                BT_LOGE("Cannot close GModule: %s: path=\"%s\"",
                                        g_module_error(), path);
                        }
+
+                       shared_lib_handle->module = NULL;
 #ifndef NDEBUG
                } else {
                        BT_LOGD("Not closing GModule because `BABELTRACE_NO_DLCLOSE=1`: "
@@ -158,6 +160,7 @@ void bt_plugin_so_shared_lib_handle_destroy(struct bt_object *obj)
 
        if (shared_lib_handle->path) {
                g_string_free(shared_lib_handle->path, TRUE);
+               shared_lib_handle->path = NULL;
        }
 
        g_free(shared_lib_handle);
@@ -709,21 +712,21 @@ enum bt_plugin_status bt_plugin_so_init(
                        src_comp_class = bt_private_component_class_source_create(
                                cc_full_descr->descriptor->name,
                                cc_full_descr->descriptor->methods.source.notif_iter_next);
-                       comp_class = bt_private_component_class_source_borrow_private_component_class(
+                       comp_class = bt_private_component_class_source_as_private_component_class(
                                src_comp_class);
                        break;
                case BT_COMPONENT_CLASS_TYPE_FILTER:
                        flt_comp_class = bt_private_component_class_filter_create(
                                cc_full_descr->descriptor->name,
                                cc_full_descr->descriptor->methods.source.notif_iter_next);
-                       comp_class = bt_private_component_class_filter_borrow_private_component_class(
+                       comp_class = bt_private_component_class_filter_as_private_component_class(
                                flt_comp_class);
                        break;
                case BT_COMPONENT_CLASS_TYPE_SINK:
                        sink_comp_class = bt_private_component_class_sink_create(
                                cc_full_descr->descriptor->name,
                                cc_full_descr->descriptor->methods.sink.consume);
-                       comp_class = bt_private_component_class_sink_borrow_private_component_class(
+                       comp_class = bt_private_component_class_sink_as_private_component_class(
                                sink_comp_class);
                        break;
                default:
@@ -1127,7 +1130,8 @@ struct bt_plugin *bt_plugin_so_create_empty(
        }
 
        spec = plugin->spec_data;
-       spec->shared_lib_handle = bt_object_get_ref(shared_lib_handle);
+       spec->shared_lib_handle = shared_lib_handle;
+       bt_object_get_no_null_check(spec->shared_lib_handle);
        goto end;
 
 error:
@@ -1495,7 +1499,8 @@ void bt_plugin_so_on_add_component_class(struct bt_plugin *plugin,
        BT_ASSERT(plugin->type == BT_PLUGIN_TYPE_SO);
 
        bt_list_add(&comp_class->node, &component_class_list);
-       comp_class->so_handle = bt_object_get_ref(spec->shared_lib_handle);
+       comp_class->so_handle = spec->shared_lib_handle;
+       bt_object_get_no_null_check(comp_class->so_handle);
 
        /* Add our custom destroy listener */
        bt_component_class_add_destroy_listener(comp_class,
This page took 0.026801 seconds and 4 git commands to generate.