From: Jérémie Galarneau Date: Thu, 25 Feb 2016 17:28:51 +0000 (-0500) Subject: Make component class destructor optional X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=ab09f84423f7020778f3c189c357b9a2e1030903;p=deliverable%2Fbabeltrace.git Make component class destructor optional Signed-off-by: Jérémie Galarneau --- diff --git a/lib/plugin-system/component.c b/lib/plugin-system/component.c index 16bc28680..5b424cd84 100644 --- a/lib/plugin-system/component.c +++ b/lib/plugin-system/component.c @@ -59,8 +59,6 @@ void bt_component_destroy(struct bt_object *obj) } component = container_of(obj, struct bt_component, base); - - assert(component->destroy); component_class = component->class; /* @@ -71,7 +69,10 @@ void bt_component_destroy(struct bt_object *obj) component->user_destroy(component->user_data); } - component->destroy(component); + if (component->destroy) { + component->destroy(component); + } + g_string_free(component->name, TRUE); bt_put(component_class); g_free(component); @@ -83,7 +84,7 @@ enum bt_component_status bt_component_init(struct bt_component *component, { enum bt_component_status ret = BT_COMPONENT_STATUS_OK; - if (!component || !destroy) { + if (!component) { ret = BT_COMPONENT_STATUS_INVALID; goto end; } diff --git a/lib/plugin-system/sink.c b/lib/plugin-system/sink.c index e37105b1b..33295286d 100644 --- a/lib/plugin-system/sink.c +++ b/lib/plugin-system/sink.c @@ -31,12 +31,6 @@ #include #include -static -void bt_component_sink_destroy(struct bt_component *component) -{ - return; -} - BT_HIDDEN enum bt_component_status bt_component_sink_validate( struct bt_component *component) diff --git a/lib/plugin-system/source.c b/lib/plugin-system/source.c index ed3b1642b..e4915a988 100644 --- a/lib/plugin-system/source.c +++ b/lib/plugin-system/source.c @@ -33,12 +33,6 @@ #include #include -static -void bt_component_source_destroy(struct bt_component *component) -{ - return; -} - BT_HIDDEN enum bt_component_status bt_component_source_validate( struct bt_component *component)