From: Michael Jeanson Date: Fri, 19 Jul 2019 19:14:45 +0000 (-0400) Subject: Fix: flt.utils.muxer: don't clear an empty `GPtrArray` X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=commitdiff_plain;h=3625612b8d1f68582f54f4113e375fdf5c66fc09 Fix: flt.utils.muxer: don't clear an empty `GPtrArray` GLib < 2.48.0 asserts when clearing an empty `GPtrArray` with g_array_remove_range(): GLib-CRITICAL **: g_ptr_array_remove_range: assertion `index_ < array->len' failed Signed-off-by: Michael Jeanson Change-Id: If9dad0869404ec72ee15724b72ad88780b671619 Reviewed-on: https://review.lttng.org/c/babeltrace/+/1725 Reviewed-by: Philippe Proulx --- diff --git a/src/plugins/utils/muxer/muxer.c b/src/plugins/utils/muxer/muxer.c index e68c372c..9510d07a 100644 --- a/src/plugins/utils/muxer/muxer.c +++ b/src/plugins/utils/muxer/muxer.c @@ -1531,8 +1531,14 @@ bt_component_class_message_iterator_seek_beginning_method_status muxer_msg_iter_ muxer_msg_iter->ended_muxer_upstream_msg_iters->pdata[i] = NULL; } - g_ptr_array_remove_range(muxer_msg_iter->ended_muxer_upstream_msg_iters, - 0, muxer_msg_iter->ended_muxer_upstream_msg_iters->len); + /* + * GLib < 2.48.0 asserts when g_ptr_array_remove_range() is + * called on an empty array. + */ + if (muxer_msg_iter->ended_muxer_upstream_msg_iters->len > 0) { + g_ptr_array_remove_range(muxer_msg_iter->ended_muxer_upstream_msg_iters, + 0, muxer_msg_iter->ended_muxer_upstream_msg_iters->len); + } muxer_msg_iter->last_returned_ts_ns = INT64_MIN; muxer_msg_iter->clock_class_expectation = MUXER_MSG_ITER_CLOCK_CLASS_EXPECTATION_ANY;