- * Return EOF if position is after the last event of the trace collection.
- * Return other negative value for other errors.
- * Return 0 for success.
+ * "depends", "weak_depends" and "provides" memory is handled by the
+ * babeltrace library after this call succeeds or fails. These objects
+ * can still be used by the caller until the babeltrace iterator is
+ * destroyed, but they belong to the babeltrace library.
+ *
+ * (note to implementor: we need to keep a gptrarray of struct
+ * bt_dependencies to "garbage collect" in struct babeltrace_iter, and
+ * dependencies need to have a refcount to handle the case where they
+ * would be passed to more than one iterator. Upon iterator detroy, we
+ * iterate on all the gc ptrarray and decrement the refcounts, freeing
+ * if we reach 0.)
+ * (note to implementor: we calculate the dependency graph when
+ * babeltrace_iter_read_event() is executed after a
+ * babeltrace_iter_add_callback(). Beware that it is valid to create/add
+ * callbacks/read/add more callbacks/read some more.)