lib: do not finalize a non-initialized notification iterator
[babeltrace.git] / lib / graph / iterator.c
index cc1228ba7ded6106f189a66d75a264aa4616ca59..f5dd6d70d9d1019726b964a268f59f733815c269 100644 (file)
@@ -445,6 +445,11 @@ void bt_notification_iterator_finalize(
        assert(iterator);
 
        switch (iterator->state) {
+       case BT_NOTIFICATION_ITERATOR_STATE_NON_INITIALIZED:
+               /* Skip user finalization if user initialization failed */
+               BT_LOGD("Not finalizing non-initialized notification iterator: "
+                       "addr=%p", iterator);
+               return;
        case BT_NOTIFICATION_ITERATOR_STATE_FINALIZED:
        case BT_NOTIFICATION_ITERATOR_STATE_FINALIZED_AND_ENDED:
                /* Already finalized */
@@ -649,7 +654,7 @@ enum bt_connection_status bt_notification_iterator_create(
        iterator->upstream_component = upstream_comp;
        iterator->upstream_port = upstream_port;
        iterator->connection = connection;
-       iterator->state = BT_NOTIFICATION_ITERATOR_STATE_ACTIVE;
+       iterator->state = BT_NOTIFICATION_ITERATOR_STATE_NON_INITIALIZED;
        BT_LOGD("Created notification iterator: "
                "upstream-comp-addr=%p, upstream-comp-name=\"%s\", "
                "upstream-port-addr=%p, upstream-port-name=\"%s\", "
This page took 0.024136 seconds and 4 git commands to generate.