#include <babeltrace/graph/component-class.h>
#include <babeltrace/graph/component-class-internal.h>
#include <babeltrace/types.h>
+#include <babeltrace/assert-internal.h>
#include <glib.h>
#include <unistd.h>
#include <stdlib.h>
static
struct bt_plugin_set *(*bt_plugin_python_create_all_from_file_sym)(const char *path) =
bt_plugin_python_create_all_from_file;
+
+static
+void init_python_plugin_provider(void) {}
#else /* BT_BUILT_IN_PYTHON_PLUGIN_SUPPORT */
static GModule *python_plugin_provider_module;
static
struct bt_plugin_set *(*bt_plugin_python_create_all_from_file_sym)(const char *path);
-__attribute__((constructor)) static
+static
void init_python_plugin_provider(void) {
+ if (bt_plugin_python_create_all_from_file_sym != NULL) {
+ return;
+ }
+
BT_LOGD_STR("Loading Python plugin provider module.");
python_plugin_provider_module =
g_module_open(PYTHON_PLUGIN_PROVIDER_FILENAME, 0);
}
/* Try Python plugins if support is available */
+ init_python_plugin_provider();
if (bt_plugin_python_create_all_from_file_sym) {
plugin_set = bt_plugin_python_create_all_from_file_sym(path);
if (plugin_set) {
enum bt_component_class_type comp_class_cand_type =
bt_component_class_get_type(comp_class_candidate);
- assert(comp_class_cand_name);
- assert(comp_class_cand_type >= 0);
+ BT_ASSERT(comp_class_cand_name);
+ BT_ASSERT(comp_class_cand_type >= 0);
if (strcmp(name, comp_class_cand_name) == 0 &&
comp_class_cand_type == type) {