common: replace container_of with a C++ safe implementation
[lttng-tools.git] / src / common / compat / directory-handle.cpp
index ba5c6925c49feb3667f61e60ea0450507e19fe71..cd4bf1769a739c189576716096304dea956aa70a 100644 (file)
@@ -147,7 +147,7 @@ struct lttng_directory_handle *lttng_directory_handle_create_from_dirfd(
                int dirfd)
 {
        int ret;
-       struct lttng_directory_handle *handle = (lttng_directory_handle *) zmalloc(sizeof(*handle));
+       struct lttng_directory_handle *handle = zmalloc<lttng_directory_handle>();
        struct stat stat_buf;
 
        if (!handle) {
@@ -176,7 +176,7 @@ void lttng_directory_handle_release(struct urcu_ref *ref)
 {
        int ret;
        struct lttng_directory_handle *handle =
-                       container_of(ref, struct lttng_directory_handle, ref);
+                       lttng::utils::container_of(ref, &lttng_directory_handle::ref);
 
        if (handle->destroy_cb) {
                handle->destroy_cb(handle, handle->destroy_cb_data);
@@ -405,7 +405,7 @@ end:
 static
 struct lttng_directory_handle *_lttng_directory_handle_create(char *path)
 {
-       struct lttng_directory_handle *handle = zmalloc(sizeof(*handle));
+       struct lttng_directory_handle *handle = zmalloc<lttng_directory_handle>();
 
        if (!handle) {
                goto end;
@@ -525,7 +525,7 @@ struct lttng_directory_handle *lttng_directory_handle_create_from_handle(
                                handle_path_len, LTTNG_PATH_MAX);
                goto end;
        }
-       new_path = zmalloc(handle_path_len);
+       new_path = zmalloc<char>(handle_path_len);
        if (!new_path) {
                PERROR("Failed to initialize directory handle");
                goto end;
@@ -557,7 +557,7 @@ static
 void lttng_directory_handle_release(struct urcu_ref *ref)
 {
        struct lttng_directory_handle *handle =
-                       container_of(ref, struct lttng_directory_handle, ref);
+                       lttng::utils::container_of(ref, &lttng_directory_handle::ref);
 
        free(handle->base_path);
        lttng_directory_handle_invalidate(handle);
@@ -1151,6 +1151,7 @@ int lttng_directory_handle_remove_subdirectory_as_user(
        return ret;
 }
 
+namespace {
 struct rmdir_frame {
        ssize_t parent_frame_idx;
        DIR *dir;
@@ -1158,6 +1159,7 @@ struct rmdir_frame {
        /* Size including '\0'. */
        size_t path_size;
 };
+} /* namespace */
 
 static
 void rmdir_frame_fini(void *data)
This page took 0.029153 seconds and 4 git commands to generate.