lib: introduce bt_message_iterator_class
[babeltrace.git] / src / lib / graph / component.c
index 2aed6932ffad144d9ed69b24acaeca9ba3cfb5ff..c771e27870cd15ca40ca27736ca794a55a836374 100644 (file)
@@ -100,13 +100,22 @@ void finalize_component(struct bt_component *comp)
                break;
        }
        default:
-               abort();
+               bt_common_abort();
        }
 
        if (method) {
+               const struct bt_error *saved_error;
+
+               saved_error = bt_current_thread_take_error();
+
                BT_LIB_LOGI("Calling user's component finalization method: "
                        "%![comp-]+c", comp);
                method(comp);
+               BT_ASSERT_POST_NO_ERROR();
+
+               if (saved_error) {
+                       BT_CURRENT_THREAD_MOVE_ERROR_AND_RESET(saved_error);
+               }
        }
 }
 
@@ -307,7 +316,7 @@ int bt_component_create(struct bt_component_class *component_class,
 
        bt_object_init_shared_with_parent(&component->base, destroy_component);
        component->class = component_class;
-       bt_object_get_no_null_check(component->class);
+       bt_object_get_ref_no_null_check(component->class);
        component->destroy = component_destroy_funcs[type];
        component->name = g_string_new(name);
        if (!component->name) {
@@ -501,7 +510,7 @@ bt_component_port_connected(
                        method = (method_t) src_cc->methods.output_port_connected;
                        break;
                default:
-                       abort();
+                       bt_common_abort();
                }
 
                break;
@@ -518,7 +527,7 @@ bt_component_port_connected(
                        method = (method_t) flt_cc->methods.output_port_connected;
                        break;
                default:
-                       abort();
+                       bt_common_abort();
                }
 
                break;
@@ -532,13 +541,13 @@ bt_component_port_connected(
                        method = (method_t) sink_cc->methods.input_port_connected;
                        break;
                default:
-                       abort();
+                       bt_common_abort();
                }
 
                break;
        }
        default:
-               abort();
+               bt_common_abort();
        }
 
        if (method) {
@@ -553,6 +562,7 @@ bt_component_port_connected(
                        status == BT_FUNC_STATUS_MEMORY_ERROR,
                        "Unexpected returned component status: status=%s",
                        bt_common_func_status_string(status));
+               BT_ASSERT_POST_NO_ERROR_IF_NO_ERROR_STATUS(status);
        }
 
        return status;
This page took 0.026026 seconds and 4 git commands to generate.