Coverity complained about data->sink being possibly NULL when it's
dereferenced later. It was difficult for me to figure out whether that
was a false positive or not. Hopefully the comments make it a bit
easier to reason about the code in the future.
CID:
1323591
data->format = pa_format_info_copy(pa_idxset_first(data->nego_formats, NULL));
if (PA_LIKELY(data->format)) {
+ /* We know that data->sink is set, because data->format has been set.
+ * data->format is set after a successful format negotiation, and that
+ * can't happen before data->sink has been set. */
+ pa_assert(data->sink);
+
pa_log_debug("Negotiated format: %s", pa_format_info_snprint(fmt, sizeof(fmt), data->format));
} else {
pa_format_info *format;
data->format = pa_format_info_copy(pa_idxset_first(data->nego_formats, NULL));
if (PA_LIKELY(data->format)) {
+ /* We know that data->source is set, because data->format has been set.
+ * data->format is set after a successful format negotiation, and that
+ * can't happen before data->source has been set. */
+ pa_assert(data->source);
+
pa_log_debug("Negotiated format: %s", pa_format_info_snprint(fmt, sizeof(fmt), data->format));
} else {
pa_format_info *format;