common: replace container_of with a C++ safe implementation
[lttng-tools.git] / src / common / actions / list.cpp
index c80832570d2dab694a4e77c61a33adffc84cdd26..4de7d81e8a04eeed57210a5b7b08a87e2e6d78df 100644 (file)
@@ -18,6 +18,7 @@
 #define IS_LIST_ACTION(action) \
        (lttng_action_get_type(action) == LTTNG_ACTION_TYPE_LIST)
 
+namespace {
 struct lttng_action_list {
        struct lttng_action parent;
 
@@ -33,6 +34,7 @@ struct lttng_action_list_comm {
         */
        char data[];
 } LTTNG_PACKED;
+} /* namespace */
 
 static void destroy_lttng_action_list_element(void *ptr)
 {
@@ -46,7 +48,7 @@ static struct lttng_action_list *action_list_from_action(
 {
        LTTNG_ASSERT(action);
 
-       return container_of(action, struct lttng_action_list, parent);
+       return lttng::utils::container_of(action, &lttng_action_list::parent);
 }
 
 static const struct lttng_action_list *action_list_from_action_const(
@@ -54,7 +56,7 @@ static const struct lttng_action_list *action_list_from_action_const(
 {
        LTTNG_ASSERT(action);
 
-       return container_of(action, struct lttng_action_list, parent);
+       return lttng::utils::container_of(action, &lttng_action_list::parent);
 }
 
 static bool lttng_action_list_validate(struct lttng_action *action)
@@ -256,8 +258,6 @@ static enum lttng_action_status lttng_action_list_add_error_query_results(
 {
        unsigned int i, count;
        enum lttng_action_status action_status;
-       const struct lttng_action_list *list =
-                       container_of(action, typeof(*list), parent);
 
        action_status = lttng_action_list_get_count(action, &count);
        if (action_status != LTTNG_ACTION_STATUS_OK) {
@@ -362,7 +362,7 @@ struct lttng_action *lttng_action_list_create(void)
        struct lttng_action_list *action_list;
        struct lttng_action *action;
 
-       action_list = (lttng_action_list *) zmalloc(sizeof(struct lttng_action_list));
+       action_list = zmalloc<lttng_action_list>();
        if (!action_list) {
                action = NULL;
                goto end;
This page took 0.022894 seconds and 4 git commands to generate.