Rémi Bernon (@rbernon) commented about dlls/winegstreamer/wg_muxer.c:
+static void muxer_destroy(struct wg_muxer *muxer) +{
- pthread_cond_destroy(&muxer->cond);
- pthread_mutex_destroy(&muxer->mutex);
- if (muxer->buffer)
muxer_free_buffer(muxer);
- if (muxer->output_queue)
gst_atomic_queue_unref(muxer->output_queue);
- if (muxer->my_sink)
gst_object_unref(muxer->my_sink);
- if (muxer->container)
- {
gst_element_set_state(muxer->container, GST_STATE_NULL);
gst_object_unref(muxer->container);
- }
- free(muxer);
I think we prefer avoiding ifs in the destructors and keep that logic only in the constructor error path. I know this may feel like duplication but it also allow you to assume that once successfully constructed, none of these fields can be NULL.