X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fcommon%2Factions%2Fsnapshot-session.cpp;h=6af260c93e35a3e7cb2659429cd0a6f0f849bf53;hb=319dcddc7409961e156af76666fe70d31baec55a;hp=600d803e3610b1d065a23cbe82e7fc79e2151596;hpb=c9e313bc594f40a86eed237dce222c0fc99c957f;p=lttng-tools.git diff --git a/src/common/actions/snapshot-session.cpp b/src/common/actions/snapshot-session.cpp index 600d803e3..6af260c93 100644 --- a/src/common/actions/snapshot-session.cpp +++ b/src/common/actions/snapshot-session.cpp @@ -23,6 +23,7 @@ #define IS_SNAPSHOT_SESSION_ACTION(action) \ (lttng_action_get_type(action) == LTTNG_ACTION_TYPE_SNAPSHOT_SESSION) +namespace { struct lttng_action_snapshot_session { struct lttng_action parent; @@ -54,6 +55,7 @@ struct lttng_action_snapshot_session_comm { */ char data[]; } LTTNG_PACKED; +} /* namespace */ static const struct lttng_rate_policy * lttng_action_snapshot_session_internal_get_rate_policy( @@ -64,8 +66,8 @@ action_snapshot_session_from_action(struct lttng_action *action) { LTTNG_ASSERT(action); - return container_of( - action, struct lttng_action_snapshot_session, parent); + return lttng::utils::container_of( + action, <tng_action_snapshot_session::parent); } static const struct lttng_action_snapshot_session * @@ -73,8 +75,8 @@ action_snapshot_session_from_action_const(const struct lttng_action *action) { LTTNG_ASSERT(action); - return container_of( - action, struct lttng_action_snapshot_session, parent); + return lttng::utils::container_of( + action, <tng_action_snapshot_session::parent); } static bool lttng_action_snapshot_session_validate(struct lttng_action *action) @@ -445,7 +447,7 @@ end: struct lttng_action *lttng_action_snapshot_session_create(void) { - struct lttng_action *action = NULL; + struct lttng_action_snapshot_session *action_snapshot = NULL; struct lttng_rate_policy *policy = NULL; enum lttng_action_status status; @@ -455,12 +457,13 @@ struct lttng_action *lttng_action_snapshot_session_create(void) goto end; } - action = (lttng_action *) zmalloc(sizeof(struct lttng_action_snapshot_session)); - if (!action) { + action_snapshot = zmalloc(); + if (!action_snapshot) { goto end; } - lttng_action_init(action, LTTNG_ACTION_TYPE_SNAPSHOT_SESSION, + lttng_action_init(&action_snapshot->parent, + LTTNG_ACTION_TYPE_SNAPSHOT_SESSION, lttng_action_snapshot_session_validate, lttng_action_snapshot_session_serialize, lttng_action_snapshot_session_is_equal, @@ -469,16 +472,17 @@ struct lttng_action *lttng_action_snapshot_session_create(void) lttng_action_generic_add_error_query_results, lttng_action_snapshot_session_mi_serialize); - status = lttng_action_snapshot_session_set_rate_policy(action, policy); + status = lttng_action_snapshot_session_set_rate_policy( + &action_snapshot->parent, policy); if (status != LTTNG_ACTION_STATUS_OK) { - free(action); - action = NULL; + lttng_action_destroy(&action_snapshot->parent); + action_snapshot = NULL; goto end; } end: lttng_rate_policy_destroy(policy); - return action; + return action_snapshot ? &action_snapshot->parent : nullptr; } enum lttng_action_status lttng_action_snapshot_session_set_session_name(