common: replace container_of with a C++ safe implementation
[lttng-tools.git] / src / common / event-rule / kernel-uprobe.cpp
index fe84f7cdad2680654fd695d0ad2441dfbe284696..cee5b2e65b30ccf9979c396b75f68419bd6e32c1 100644 (file)
@@ -5,18 +5,18 @@
  *
  */
 
-#include <common/credentials.h>
-#include <common/error.h>
-#include <common/hashtable/hashtable.h>
-#include <common/hashtable/utils.h>
-#include <common/macros.h>
-#include <common/mi-lttng.h>
-#include <common/payload-view.h>
-#include <common/payload.h>
-#include <common/runas.h>
-#include <lttng/event-rule/event-rule-internal.h>
-#include <lttng/event-rule/kernel-uprobe-internal.h>
-#include <lttng/userspace-probe-internal.h>
+#include <common/credentials.hpp>
+#include <common/error.hpp>
+#include <common/hashtable/hashtable.hpp>
+#include <common/hashtable/utils.hpp>
+#include <common/macros.hpp>
+#include <common/mi-lttng.hpp>
+#include <common/payload-view.hpp>
+#include <common/payload.hpp>
+#include <common/runas.hpp>
+#include <lttng/event-rule/event-rule-internal.hpp>
+#include <lttng/event-rule/kernel-uprobe-internal.hpp>
+#include <lttng/userspace-probe-internal.hpp>
 
 #define IS_UPROBE_EVENT_RULE(rule) \
        (lttng_event_rule_get_type(rule) == LTTNG_EVENT_RULE_TYPE_KERNEL_UPROBE)
@@ -25,7 +25,7 @@ static void lttng_event_rule_kernel_uprobe_destroy(struct lttng_event_rule *rule
 {
        struct lttng_event_rule_kernel_uprobe *uprobe;
 
-       uprobe = container_of(rule, struct lttng_event_rule_kernel_uprobe, parent);
+       uprobe = lttng::utils::container_of(rule, &lttng_event_rule_kernel_uprobe::parent);
 
        lttng_userspace_probe_location_destroy(uprobe->location);
        free(uprobe->name);
@@ -42,7 +42,7 @@ static bool lttng_event_rule_kernel_uprobe_validate(
                goto end;
        }
 
-       uprobe = container_of(rule, struct lttng_event_rule_kernel_uprobe, parent);
+       uprobe = lttng::utils::container_of(rule, &lttng_event_rule_kernel_uprobe::parent);
 
        /* Required field. */
        if (!uprobe->name) {
@@ -78,7 +78,7 @@ static int lttng_event_rule_kernel_uprobe_serialize(
        header_offset = payload->buffer.size;
 
        DBG("Serializing uprobe event rule.");
-       uprobe = container_of(rule, struct lttng_event_rule_kernel_uprobe, parent);
+       uprobe = lttng::utils::container_of(rule, &lttng_event_rule_kernel_uprobe::parent);
 
        name_len = strlen(uprobe->name) + 1;
 
@@ -122,8 +122,8 @@ static bool lttng_event_rule_kernel_uprobe_is_equal(const struct lttng_event_rul
        bool is_equal = false;
        struct lttng_event_rule_kernel_uprobe *a, *b;
 
-       a = container_of(_a, struct lttng_event_rule_kernel_uprobe, parent);
-       b = container_of(_b, struct lttng_event_rule_kernel_uprobe, parent);
+       a = lttng::utils::container_of(_a, &lttng_event_rule_kernel_uprobe::parent);
+       b = lttng::utils::container_of(_b, &lttng_event_rule_kernel_uprobe::parent);
 
        /* uprobe is invalid if this is not true. */
        LTTNG_ASSERT(a->name);
@@ -179,7 +179,7 @@ lttng_event_rule_kernel_uprobe_hash(
 {
        unsigned long hash;
        struct lttng_event_rule_kernel_uprobe *urule =
-                       container_of(rule, typeof(*urule), parent);
+                       lttng::utils::container_of(rule, &lttng_event_rule_kernel_uprobe::parent);
 
        hash = hash_key_ulong((void *) LTTNG_EVENT_RULE_TYPE_KERNEL_UPROBE,
                        lttng_ht_seed);
@@ -279,7 +279,7 @@ struct lttng_event_rule *lttng_event_rule_kernel_uprobe_create(
        struct lttng_event_rule *rule = NULL;
        struct lttng_event_rule_kernel_uprobe *urule;
 
-       urule = (lttng_event_rule_kernel_uprobe *) zmalloc(sizeof(struct lttng_event_rule_kernel_uprobe));
+       urule = zmalloc<lttng_event_rule_kernel_uprobe>();
        if (!urule) {
                goto end;
        }
@@ -438,7 +438,7 @@ lttng_event_rule_kernel_uprobe_get_location_mutable(
        struct lttng_event_rule_kernel_uprobe *uprobe;
 
        LTTNG_ASSERT(rule);
-       uprobe = container_of(rule, struct lttng_event_rule_kernel_uprobe, parent);
+       uprobe = lttng::utils::container_of(rule, &lttng_event_rule_kernel_uprobe::parent);
 
        return uprobe->location;
 }
@@ -456,7 +456,7 @@ enum lttng_event_rule_status lttng_event_rule_kernel_uprobe_set_event_name(
                goto end;
        }
 
-       uprobe = container_of(rule, struct lttng_event_rule_kernel_uprobe, parent);
+       uprobe = lttng::utils::container_of(rule, &lttng_event_rule_kernel_uprobe::parent);
        name_copy = strdup(name);
        if (!name_copy) {
                status = LTTNG_EVENT_RULE_STATUS_ERROR;
@@ -484,7 +484,7 @@ enum lttng_event_rule_status lttng_event_rule_kernel_uprobe_get_event_name(
                goto end;
        }
 
-       uprobe = container_of(rule, struct lttng_event_rule_kernel_uprobe, parent);
+       uprobe = lttng::utils::container_of(rule, &lttng_event_rule_kernel_uprobe::parent);
        if (!uprobe->name) {
                status = LTTNG_EVENT_RULE_STATUS_UNSET;
                goto end;
This page took 0.024878 seconds and 4 git commands to generate.