X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=lib%2Fgraph%2Fconnection.c;h=163a760b2d809b03529ca9b8e6adc4bf1fb8304d;hb=bf55043c2e742cafb86d3a3404d0d35c4cf294a3;hp=10f8074762f3d14c84438c884cabc38271b696bf;hpb=d4393e0875e7b08f6ee97d617cc5f2c9286742a4;p=babeltrace.git diff --git a/lib/graph/connection.c b/lib/graph/connection.c index 10f80747..163a760b 100644 --- a/lib/graph/connection.c +++ b/lib/graph/connection.c @@ -214,21 +214,25 @@ void bt_connection_end(struct bt_connection *conn, conn->upstream_port = NULL; } - if (downstream_comp) { + if (downstream_comp && conn->notified_downstream_port_connected) { /* bt_component_port_disconnected() logs details */ bt_component_port_disconnected(downstream_comp, downstream_port); } - if (upstream_comp) { + if (upstream_comp && conn->notified_upstream_port_connected) { /* bt_component_port_disconnected() logs details */ bt_component_port_disconnected(upstream_comp, upstream_port); } BT_ASSERT(graph); - /* bt_graph_notify_ports_disconnected() logs details */ - bt_graph_notify_ports_disconnected(graph, upstream_comp, - downstream_comp, upstream_port, downstream_port); + + if (conn->notified_graph_ports_connected) { + /* bt_graph_notify_ports_disconnected() logs details */ + bt_graph_notify_ports_disconnected(graph, upstream_comp, + downstream_comp, upstream_port, downstream_port); + } + bt_put(downstream_comp); bt_put(upstream_comp);