X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=blobdiff_plain;f=src%2Flib%2Ferror.c;h=067f30dbd73c52ccfa3b7b1203cfbfd38f635fa7;hp=21e92c4cac0c0358ba6bf7297c166649f5014be7;hb=d6185733d12572f9227fcb9fe5be8b82bd43ee45;hpb=0235b0db7de5bcacdb3650c92461f2ce5eb2143d diff --git a/src/lib/error.c b/src/lib/error.c index 21e92c4c..067f30db 100644 --- a/src/lib/error.c +++ b/src/lib/error.c @@ -16,11 +16,12 @@ #include "graph/component.h" #include "graph/component-class.h" #include "common/assert.h" -#include "lib/assert-pre.h" +#include "lib/assert-cond.h" #include "lib/func-status.h" -#define BT_ASSERT_PRE_CAUSE_HAS_ACTOR_TYPE(_cause, _exp_type) \ - BT_ASSERT_PRE(((const struct bt_error_cause *) (_cause))->actor_type == _exp_type, \ +#define BT_ASSERT_PRE_CAUSE_HAS_ACTOR_TYPE(_cause, _exp_type_name, _exp_type) \ + BT_ASSERT_PRE("error-cause-has-" _exp_type_name "-actor", \ + ((const struct bt_error_cause *) (_cause))->actor_type == _exp_type, \ "Unexpected error cause's actor type: type=%s, exp-type=%s", \ bt_error_cause_actor_type_string(((const struct bt_error_cause *) (_cause))->actor_type), \ bt_error_cause_actor_type_string(_exp_type)) @@ -154,8 +155,6 @@ int init_error_cause(struct bt_error_cause *cause, goto end; } - BT_LIB_LOGD("Initialized error cause: %!+r", cause); - end: return ret; } @@ -299,8 +298,10 @@ struct bt_error_cause_component_actor *create_error_cause_component_actor( goto end; error: - destroy_error_cause(&cause->base); - cause = NULL; + if (cause) { + destroy_error_cause(&cause->base); + cause = NULL; + } end: return cause; @@ -340,8 +341,10 @@ create_error_cause_component_class_actor(struct bt_component_class *comp_cls, goto end; error: - destroy_error_cause(&cause->base); - cause = NULL; + if (cause) { + destroy_error_cause(&cause->base); + cause = NULL; + } end: return cause; @@ -406,8 +409,10 @@ create_error_cause_message_iterator_actor(struct bt_message_iterator *iter, goto end; error: - destroy_error_cause(&cause->base); - cause = NULL; + if (cause) { + destroy_error_cause(&cause->base); + cause = NULL; + } end: return cause; @@ -522,7 +527,10 @@ int bt_error_append_cause_from_component( cause = NULL; end: - destroy_error_cause(&cause->base); + if (cause) { + destroy_error_cause(&cause->base); + } + return status; } @@ -556,7 +564,10 @@ int bt_error_append_cause_from_component_class( cause = NULL; end: - destroy_error_cause(&cause->base); + if (cause) { + destroy_error_cause(&cause->base); + } + return status; } @@ -589,7 +600,10 @@ int bt_error_append_cause_from_message_iterator( cause = NULL; end: - destroy_error_cause(&cause->base); + if (cause) { + destroy_error_cause(&cause->base); + } + return status; } @@ -601,20 +615,20 @@ uint64_t error_cause_count(const bt_error *error) uint64_t bt_error_get_cause_count(const bt_error *error) { - BT_ASSERT_PRE_NON_NULL(error, "Error"); + BT_ASSERT_PRE_ERROR_NON_NULL(error); return error_cause_count(error); } void bt_error_release(const struct bt_error *error) { - BT_ASSERT_PRE_NON_NULL(error, "Error"); + BT_ASSERT_PRE_ERROR_NON_NULL(error); bt_error_destroy((void *) error); } const struct bt_error_cause *bt_error_borrow_cause_by_index( const bt_error *error, uint64_t index) { - BT_ASSERT_PRE_NON_NULL(error, "Error"); + BT_ASSERT_PRE_ERROR_NON_NULL(error); BT_ASSERT_PRE_VALID_INDEX(index, error_cause_count(error)); return error->causes->pdata[index]; } @@ -622,31 +636,31 @@ const struct bt_error_cause *bt_error_borrow_cause_by_index( enum bt_error_cause_actor_type bt_error_cause_get_actor_type( const struct bt_error_cause *cause) { - BT_ASSERT_PRE_NON_NULL(cause, "Error cause"); + BT_ASSERT_PRE_ERROR_CAUSE_NON_NULL(cause); return cause->actor_type; } const char *bt_error_cause_get_message(const struct bt_error_cause *cause) { - BT_ASSERT_PRE_NON_NULL(cause, "Error cause"); + BT_ASSERT_PRE_ERROR_CAUSE_NON_NULL(cause); return cause->message->str; } const char *bt_error_cause_get_module_name(const struct bt_error_cause *cause) { - BT_ASSERT_PRE_NON_NULL(cause, "Error cause"); + BT_ASSERT_PRE_ERROR_CAUSE_NON_NULL(cause); return cause->module_name->str; } const char *bt_error_cause_get_file_name(const struct bt_error_cause *cause) { - BT_ASSERT_PRE_NON_NULL(cause, "Error cause"); + BT_ASSERT_PRE_ERROR_CAUSE_NON_NULL(cause); return cause->file_name->str; } uint64_t bt_error_cause_get_line_number(const bt_error_cause *cause) { - BT_ASSERT_PRE_NON_NULL(cause, "Error cause"); + BT_ASSERT_PRE_ERROR_CAUSE_NON_NULL(cause); return cause->line_no; } @@ -656,8 +670,8 @@ const char *bt_error_cause_component_actor_get_component_name( const struct bt_error_cause_component_actor *spec_cause = (const void *) cause; - BT_ASSERT_PRE_NON_NULL(cause, "Error cause"); - BT_ASSERT_PRE_CAUSE_HAS_ACTOR_TYPE(cause, + BT_ASSERT_PRE_ERROR_CAUSE_NON_NULL(cause); + BT_ASSERT_PRE_CAUSE_HAS_ACTOR_TYPE(cause, "component", BT_ERROR_CAUSE_ACTOR_TYPE_COMPONENT); return spec_cause->comp_name->str; } @@ -668,8 +682,8 @@ bt_component_class_type bt_error_cause_component_actor_get_component_class_type( const struct bt_error_cause_component_actor *spec_cause = (const void *) cause; - BT_ASSERT_PRE_NON_NULL(cause, "Error cause"); - BT_ASSERT_PRE_CAUSE_HAS_ACTOR_TYPE(cause, + BT_ASSERT_PRE_ERROR_CAUSE_NON_NULL(cause); + BT_ASSERT_PRE_CAUSE_HAS_ACTOR_TYPE(cause, "component", BT_ERROR_CAUSE_ACTOR_TYPE_COMPONENT); return spec_cause->comp_class_id.type; } @@ -680,8 +694,8 @@ const char *bt_error_cause_component_actor_get_component_class_name( const struct bt_error_cause_component_actor *spec_cause = (const void *) cause; - BT_ASSERT_PRE_NON_NULL(cause, "Error cause"); - BT_ASSERT_PRE_CAUSE_HAS_ACTOR_TYPE(cause, + BT_ASSERT_PRE_ERROR_CAUSE_NON_NULL(cause); + BT_ASSERT_PRE_CAUSE_HAS_ACTOR_TYPE(cause, "component", BT_ERROR_CAUSE_ACTOR_TYPE_COMPONENT); return spec_cause->comp_class_id.name->str; } @@ -692,8 +706,8 @@ const char *bt_error_cause_component_actor_get_plugin_name( const struct bt_error_cause_component_actor *spec_cause = (const void *) cause; - BT_ASSERT_PRE_NON_NULL(cause, "Error cause"); - BT_ASSERT_PRE_CAUSE_HAS_ACTOR_TYPE(cause, + BT_ASSERT_PRE_ERROR_CAUSE_NON_NULL(cause); + BT_ASSERT_PRE_CAUSE_HAS_ACTOR_TYPE(cause, "component", BT_ERROR_CAUSE_ACTOR_TYPE_COMPONENT); return spec_cause->comp_class_id.plugin_name->len > 0 ? spec_cause->comp_class_id.plugin_name->str : NULL; @@ -706,8 +720,8 @@ bt_error_cause_component_class_actor_get_component_class_type( const struct bt_error_cause_component_class_actor *spec_cause = (const void *) cause; - BT_ASSERT_PRE_NON_NULL(cause, "Error cause"); - BT_ASSERT_PRE_CAUSE_HAS_ACTOR_TYPE(cause, + BT_ASSERT_PRE_ERROR_CAUSE_NON_NULL(cause); + BT_ASSERT_PRE_CAUSE_HAS_ACTOR_TYPE(cause, "component-class", BT_ERROR_CAUSE_ACTOR_TYPE_COMPONENT_CLASS); return spec_cause->comp_class_id.type; } @@ -718,8 +732,8 @@ const char *bt_error_cause_component_class_actor_get_component_class_name( const struct bt_error_cause_component_class_actor *spec_cause = (const void *) cause; - BT_ASSERT_PRE_NON_NULL(cause, "Error cause"); - BT_ASSERT_PRE_CAUSE_HAS_ACTOR_TYPE(cause, + BT_ASSERT_PRE_ERROR_CAUSE_NON_NULL(cause); + BT_ASSERT_PRE_CAUSE_HAS_ACTOR_TYPE(cause, "component-class", BT_ERROR_CAUSE_ACTOR_TYPE_COMPONENT_CLASS); return spec_cause->comp_class_id.name->str; } @@ -730,8 +744,8 @@ const char *bt_error_cause_component_class_actor_get_plugin_name( const struct bt_error_cause_component_class_actor *spec_cause = (const void *) cause; - BT_ASSERT_PRE_NON_NULL(cause, "Error cause"); - BT_ASSERT_PRE_CAUSE_HAS_ACTOR_TYPE(cause, + BT_ASSERT_PRE_ERROR_CAUSE_NON_NULL(cause); + BT_ASSERT_PRE_CAUSE_HAS_ACTOR_TYPE(cause, "component-class", BT_ERROR_CAUSE_ACTOR_TYPE_COMPONENT_CLASS); return spec_cause->comp_class_id.plugin_name->len > 0 ? spec_cause->comp_class_id.plugin_name->str : NULL; @@ -743,8 +757,8 @@ const char *bt_error_cause_message_iterator_actor_get_component_name( const struct bt_error_cause_message_iterator_actor *spec_cause = (const void *) cause; - BT_ASSERT_PRE_NON_NULL(cause, "Error cause"); - BT_ASSERT_PRE_CAUSE_HAS_ACTOR_TYPE(cause, + BT_ASSERT_PRE_ERROR_CAUSE_NON_NULL(cause); + BT_ASSERT_PRE_CAUSE_HAS_ACTOR_TYPE(cause, "message-iterator", BT_ERROR_CAUSE_ACTOR_TYPE_MESSAGE_ITERATOR); return spec_cause->comp_name->str; } @@ -756,8 +770,8 @@ bt_error_cause_message_iterator_actor_get_component_output_port_name( const struct bt_error_cause_message_iterator_actor *spec_cause = (const void *) cause; - BT_ASSERT_PRE_NON_NULL(cause, "Error cause"); - BT_ASSERT_PRE_CAUSE_HAS_ACTOR_TYPE(cause, + BT_ASSERT_PRE_ERROR_CAUSE_NON_NULL(cause); + BT_ASSERT_PRE_CAUSE_HAS_ACTOR_TYPE(cause, "message-iterator", BT_ERROR_CAUSE_ACTOR_TYPE_MESSAGE_ITERATOR); return spec_cause->output_port_name->str; } @@ -769,8 +783,8 @@ bt_error_cause_message_iterator_actor_get_component_class_type( const struct bt_error_cause_message_iterator_actor *spec_cause = (const void *) cause; - BT_ASSERT_PRE_NON_NULL(cause, "Error cause"); - BT_ASSERT_PRE_CAUSE_HAS_ACTOR_TYPE(cause, + BT_ASSERT_PRE_ERROR_CAUSE_NON_NULL(cause); + BT_ASSERT_PRE_CAUSE_HAS_ACTOR_TYPE(cause, "message-iterator", BT_ERROR_CAUSE_ACTOR_TYPE_MESSAGE_ITERATOR); return spec_cause->comp_class_id.type; } @@ -781,8 +795,8 @@ const char *bt_error_cause_message_iterator_actor_get_component_class_name( const struct bt_error_cause_message_iterator_actor *spec_cause = (const void *) cause; - BT_ASSERT_PRE_NON_NULL(cause, "Error cause"); - BT_ASSERT_PRE_CAUSE_HAS_ACTOR_TYPE(cause, + BT_ASSERT_PRE_ERROR_CAUSE_NON_NULL(cause); + BT_ASSERT_PRE_CAUSE_HAS_ACTOR_TYPE(cause, "message-iterator", BT_ERROR_CAUSE_ACTOR_TYPE_MESSAGE_ITERATOR); return spec_cause->comp_class_id.name->str; } @@ -793,8 +807,8 @@ const char *bt_error_cause_message_iterator_actor_get_plugin_name( const struct bt_error_cause_message_iterator_actor *spec_cause = (const void *) cause; - BT_ASSERT_PRE_NON_NULL(cause, "Error cause"); - BT_ASSERT_PRE_CAUSE_HAS_ACTOR_TYPE(cause, + BT_ASSERT_PRE_ERROR_CAUSE_NON_NULL(cause); + BT_ASSERT_PRE_CAUSE_HAS_ACTOR_TYPE(cause, "message-iterator", BT_ERROR_CAUSE_ACTOR_TYPE_MESSAGE_ITERATOR); return spec_cause->comp_class_id.plugin_name->len > 0 ? spec_cause->comp_class_id.plugin_name->str : NULL;