source.text.dmesg: replace switch to convert status with cast
[babeltrace.git] / src / plugins / text / dmesg / dmesg.c
index 65718d326b0f5e75eb9dd13f72087bdecaad4cbc..801acf91654deb2d1c025870d305d19f3cbe8d5f 100644 (file)
@@ -1,24 +1,8 @@
 /*
+ * SPDX-License-Identifier: MIT
+ *
  * Copyright 2010-2011 EfficiOS Inc. and Linux Foundation
  * Copyright 2017 Philippe Proulx <pproulx@efficios.com>
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
  */
 
 #define BT_COMP_LOG_SELF_COMP (dmesg_comp->self_comp)
@@ -359,32 +343,6 @@ void destroy_dmesg_component(struct dmesg_component *dmesg_comp)
        g_free(dmesg_comp);
 }
 
-static
-bt_component_class_initialize_method_status create_port(
-               bt_self_component_source *self_comp)
-{
-       bt_component_class_initialize_method_status status;
-       bt_self_component_add_port_status add_port_status;
-
-       add_port_status = bt_self_component_source_add_output_port(self_comp,
-               "out", NULL, NULL);
-       switch (add_port_status) {
-       case BT_SELF_COMPONENT_ADD_PORT_STATUS_OK:
-               status = BT_COMPONENT_CLASS_INITIALIZE_METHOD_STATUS_OK;
-               break;
-       case BT_SELF_COMPONENT_ADD_PORT_STATUS_ERROR:
-               status = BT_COMPONENT_CLASS_INITIALIZE_METHOD_STATUS_ERROR;
-               break;
-       case BT_SELF_COMPONENT_ADD_PORT_STATUS_MEMORY_ERROR:
-               status = BT_COMPONENT_CLASS_INITIALIZE_METHOD_STATUS_MEMORY_ERROR;
-               break;
-       default:
-               bt_common_abort();
-       }
-
-       return status;
-}
-
 BT_HIDDEN
 bt_component_class_initialize_method_status dmesg_init(
                bt_self_component_source *self_comp_src,
@@ -397,6 +355,7 @@ bt_component_class_initialize_method_status dmesg_init(
                bt_self_component_source_as_self_component(self_comp_src);
        const bt_component *comp = bt_self_component_as_component(self_comp);
        bt_logging_level log_level = bt_component_get_logging_level(comp);
+       bt_self_component_add_port_status add_port_status;
 
        if (!dmesg_comp) {
                /* Implicit log level is not available here */
@@ -433,8 +392,10 @@ bt_component_class_initialize_method_status dmesg_init(
                goto error;
        }
 
-       status = create_port(self_comp_src);
-       if (status != BT_COMPONENT_CLASS_INITIALIZE_METHOD_STATUS_OK) {
+       add_port_status = bt_self_component_source_add_output_port(
+               self_comp_src, "out", NULL, NULL);
+       if (add_port_status != BT_SELF_COMPONENT_ADD_PORT_STATUS_OK) {
+               status = (int) add_port_status;
                goto error;
        }
 
@@ -665,9 +626,10 @@ BT_HIDDEN
 bt_message_iterator_class_initialize_method_status dmesg_msg_iter_init(
                bt_self_message_iterator *self_msg_iter,
                bt_self_message_iterator_configuration *config,
-               bt_self_component *self_comp,
                bt_self_component_port_output *self_port)
 {
+       bt_self_component *self_comp =
+               bt_self_message_iterator_borrow_component(self_msg_iter);
        struct dmesg_component *dmesg_comp = bt_self_component_get_data(self_comp);
        struct dmesg_msg_iter *dmesg_msg_iter =
                g_new0(struct dmesg_msg_iter, 1);
@@ -724,8 +686,7 @@ bt_message_iterator_class_next_method_status dmesg_msg_iter_next_one(
 {
        ssize_t len;
        struct dmesg_component *dmesg_comp;
-       bt_message_iterator_class_next_method_status status =
-               BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_OK;
+       bt_message_iterator_class_next_method_status status;
 
        BT_ASSERT_DBG(dmesg_msg_iter);
        dmesg_comp = dmesg_msg_iter->dmesg_comp;
@@ -750,8 +711,10 @@ bt_message_iterator_class_next_method_status dmesg_msg_iter_next_one(
                if (len < 0) {
                        if (errno == EINVAL) {
                                status = BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_ERROR;
+                               goto end;
                        } else if (errno == ENOMEM) {
                                status = BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_MEMORY_ERROR;
+                               goto end;
                        } else {
                                if (dmesg_msg_iter->state == STATE_EMIT_STREAM_BEGINNING) {
                                        /* Stream did not even begin */
@@ -764,15 +727,13 @@ bt_message_iterator_class_next_method_status dmesg_msg_iter_next_one(
                                        goto handle_state;
                                }
                        }
-
-                       goto end;
                }
 
                BT_ASSERT_DBG(dmesg_msg_iter->linebuf);
 
                /* Ignore empty lines, once trimmed */
                for (ch = dmesg_msg_iter->linebuf; *ch != '\0'; ch++) {
-                       if (!isspace(*ch)) {
+                       if (!isspace((unsigned char) *ch)) {
                                only_spaces = false;
                                break;
                        }
@@ -789,6 +750,7 @@ bt_message_iterator_class_next_method_status dmesg_msg_iter_next_one(
                BT_COMP_LOGE("Cannot create event message from line: "
                        "dmesg-comp-addr=%p, line=\"%s\"", dmesg_comp,
                        dmesg_msg_iter->linebuf);
+               status = BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_ERROR;
                goto end;
        }
 
@@ -820,8 +782,10 @@ handle_state:
                BT_COMP_LOGE("Cannot create message: dmesg-comp-addr=%p",
                        dmesg_comp);
                status = BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_ERROR;
+               goto end;
        }
 
+       status = BT_MESSAGE_ITERATOR_CLASS_NEXT_METHOD_STATUS_OK;
 end:
        return status;
 }
This page took 0.024814 seconds and 4 git commands to generate.