#include <common/macros.h>
#include <common/sessiond-comm/sessiond-comm.h>
#include <lttng/action/action-internal.h>
-#include <lttng/action/group-internal.h>
+#include <lttng/action/list-internal.h>
#include <lttng/error-query-internal.h>
#include <lttng/error-query.h>
#include <lttng/trigger/trigger-internal.h>
const struct lttng_trigger *trigger)
{
struct lttng_error_query_trigger *query = NULL;
- struct lttng_trigger *trigger_copy;
+ struct lttng_trigger *trigger_copy = NULL;
- trigger_copy = lttng_trigger_copy(trigger);
- if (!trigger_copy) {
+ if (!trigger) {
goto end;
}
- if (!trigger) {
+ trigger_copy = lttng_trigger_copy(trigger);
+ if (!trigger_copy) {
goto end;
}
query = zmalloc(sizeof(*query));
if (!query) {
PERROR("Failed to allocate trigger error query");
- goto end;
+ goto error;
}
query->parent.target_type = LTTNG_ERROR_QUERY_TARGET_TYPE_TRIGGER;
query->trigger = trigger_copy;
+ trigger_copy = NULL;
+
+error:
+ lttng_trigger_put(trigger_copy);
end:
return query ? &query->parent : NULL;
}
{
struct lttng_error_query_action *query = NULL;
typeof(query->action_index) action_index;
- struct lttng_trigger *trigger_copy;
+ struct lttng_trigger *trigger_copy = NULL;
if (!trigger || !action) {
goto end;
* action list.
*
* Note that action comparisons are performed by pointer since multiple
- * otherwise identical actions can be found in an action group (two
+ * otherwise identical actions can be found in an action list (two
* notify actions, for example).
*/
if (action != trigger->action &&
lttng_action_get_type(trigger->action) ==
LTTNG_ACTION_TYPE_GROUP) {
- unsigned int i, action_group_count;
+ unsigned int i, action_list_count;
enum lttng_action_status action_status;
- action_status = lttng_action_group_get_count(
- trigger->action, &action_group_count);
+ action_status = lttng_action_list_get_count(
+ trigger->action, &action_list_count);
if (action_status != LTTNG_ACTION_STATUS_OK) {
- goto end;
+ goto error;
}
- for (i = 0; i < action_group_count; i++) {
+ for (i = 0; i < action_list_count; i++) {
const struct lttng_action *candidate_action =
- lttng_action_group_get_at_index(
+ lttng_action_list_get_at_index(
trigger->action, i);
assert(candidate_action);
if (!action_index.is_set) {
/* Not found; invalid action. */
- goto end;
+ goto error;
}
} else {
/*
* Trigger action is not a group and not equal to the target
* action; invalid action provided.
*/
- goto end;
+ goto error;
}
query = zmalloc(sizeof(*query));
if (!query) {
PERROR("Failed to allocate action error query");
- goto end;
+ goto error;
}
query->parent.target_type = LTTNG_ERROR_QUERY_TARGET_TYPE_ACTION;
query->trigger = trigger_copy;
+ trigger_copy = NULL;
query->action_index = action_index;
+error:
+ lttng_trigger_put(trigger_copy);
end:
return query ? &query->parent : NULL;
}
goto end;
}
- target_action = lttng_action_group_borrow_mutable_at_index(
+ target_action = lttng_action_list_borrow_mutable_at_index(
trigger_action,
LTTNG_OPTIONAL_GET(query_action->action_index));
}
{
ssize_t used_size = 0;
struct lttng_error_query_comm *header;
+ struct lttng_trigger *trigger = NULL;
struct lttng_payload_view header_view =
lttng_payload_view_from_view(view, 0, sizeof(*header));
switch ((enum lttng_error_query_target_type) header->target_type) {
case LTTNG_ERROR_QUERY_TARGET_TYPE_TRIGGER:
{
- struct lttng_trigger *trigger;
ssize_t trigger_used_size;
struct lttng_payload_view trigger_view =
lttng_payload_view_from_view(
used_size += trigger_used_size;
*query = lttng_error_query_trigger_create(trigger);
- lttng_trigger_put(trigger);
if (!*query) {
used_size = -1;
goto end;
}
case LTTNG_ERROR_QUERY_TARGET_TYPE_ACTION:
{
- struct lttng_trigger *trigger;
const struct lttng_action *target_action;
ssize_t trigger_used_size;
struct lttng_error_query_action_comm *action_header;
goto end;
}
- target_action = lttng_action_group_get_at_index(
+ target_action = lttng_action_list_get_at_index(
trigger->action,
action_header->action_index.value);
}
*query = lttng_error_query_action_create(
trigger, target_action);
- lttng_trigger_put(trigger);
if (!*query) {
used_size = -1;
goto end;
}
end:
+ lttng_trigger_put(trigger);
return used_size;
}