Fix: don't call iterator finalize more than once
[babeltrace.git] / lib / graph / iterator.c
index 1bfe3495051be8caa8d22d15b3532cceea794b65..bda2dfd3cfcd6f15558ac1a6631f6c710f4b9bc0 100644 (file)
@@ -349,6 +349,12 @@ void bt_notification_iterator_finalize(
                break;
        }
 
+       if (iterator->state == BT_NOTIFICATION_ITERATOR_STATE_ENDED) {
+               iterator->state = BT_NOTIFICATION_ITERATOR_STATE_FINALIZED_AND_ENDED;
+       } else {
+               iterator->state = BT_NOTIFICATION_ITERATOR_STATE_FINALIZED;
+       }
+
        assert(iterator->upstream_component);
        comp_class = iterator->upstream_component->class;
 
@@ -380,12 +386,6 @@ void bt_notification_iterator_finalize(
                        bt_private_notification_iterator_from_notification_iterator(iterator));
        }
 
-       if (iterator->state == BT_NOTIFICATION_ITERATOR_STATE_ENDED) {
-               iterator->state = BT_NOTIFICATION_ITERATOR_STATE_FINALIZED_AND_ENDED;
-       } else {
-               iterator->state = BT_NOTIFICATION_ITERATOR_STATE_FINALIZED;
-       }
-
        iterator->upstream_component = NULL;
        iterator->upstream_port = NULL;
 }
This page took 0.024264 seconds and 4 git commands to generate.