+ /* Unreachable. */
+ assert(0);
+ }
+
+ if (init_method) {
+ enum bt_notification_iterator_status status = init_method(
+ bt_private_component_from_component(upstream_component),
+ bt_private_port_from_port(upstream_port),
+ bt_private_notification_iterator_from_notification_iterator(iterator));
+ if (status < 0) {
+ goto error;
+ }
+ }
+
+ ret_iterator = bt_notification_iterator_validate(iterator);
+ if (ret_iterator != BT_NOTIFICATION_ITERATOR_STATUS_OK) {
+ goto error;