From 1b7b1ef9a788b1987790d43c2559f1bf3b081179 Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Wed, 19 Jan 2022 17:20:28 -0500 Subject: [PATCH] src.ctf.fs: add status conversion function The line changed, in bt_message_iterator_class_initialize_method_status, converts a ctf_msg_iter_medium_status to a bt_message_iterator_class_initialize_method_status using a direct cast. However, there is not a 1:1 mapping between the two enums. There are values in the source that are not valid in the destination. Replace the int cast with a dedicated conversion method. Change-Id: Iad24a87bb3926ea9191ca00e18e13df933807f65 Signed-off-by: Simon Marchi Reviewed-on: https://review.lttng.org/c/babeltrace/+/7094 Reviewed-by: Philippe Proulx --- src/plugins/ctf/fs-src/fs.c | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/plugins/ctf/fs-src/fs.c b/src/plugins/ctf/fs-src/fs.c index 42956c22..ac3bdb31 100644 --- a/src/plugins/ctf/fs-src/fs.c +++ b/src/plugins/ctf/fs-src/fs.c @@ -189,6 +189,25 @@ void ctf_fs_iterator_finalize(bt_self_message_iterator *it) bt_self_message_iterator_get_data(it)); } +static +bt_message_iterator_class_initialize_method_status +ctf_msg_iter_medium_status_to_msg_iter_initialize_status + (enum ctf_msg_iter_medium_status status) +{ + switch (status) { + case CTF_MSG_ITER_MEDIUM_STATUS_EOF: + case CTF_MSG_ITER_MEDIUM_STATUS_AGAIN: + case CTF_MSG_ITER_MEDIUM_STATUS_ERROR: + return BT_MESSAGE_ITERATOR_CLASS_INITIALIZE_METHOD_STATUS_ERROR; + case CTF_MSG_ITER_MEDIUM_STATUS_MEMORY_ERROR: + return BT_MESSAGE_ITERATOR_CLASS_INITIALIZE_METHOD_STATUS_MEMORY_ERROR; + case CTF_MSG_ITER_MEDIUM_STATUS_OK: + return BT_MESSAGE_ITERATOR_CLASS_INITIALIZE_METHOD_STATUS_OK; + } + + bt_common_abort(); +} + BT_HIDDEN bt_message_iterator_class_initialize_method_status ctf_fs_iterator_init( bt_self_message_iterator *self_msg_iter, @@ -229,7 +248,7 @@ bt_message_iterator_class_initialize_method_status ctf_fs_iterator_init( if (medium_status != CTF_MSG_ITER_MEDIUM_STATUS_OK) { BT_MSG_ITER_LOGE_APPEND_CAUSE(self_msg_iter, "Failed to create ctf_fs_ds_group_medops"); - status = (int) medium_status; + status = ctf_msg_iter_medium_status_to_msg_iter_initialize_status(medium_status); goto error; } -- 2.34.1