Build fix: poll compatibility mode: zmalloc prototype changed
authorJérémie Galarneau <jeremie.galarneau@efficios.com>
Fri, 8 Apr 2022 18:22:11 +0000 (14:22 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Fri, 8 Apr 2022 18:22:11 +0000 (14:22 -0400)
The build fails on platforms that don't support the epoll system
call (or when building with --disable-epoll on Linux):

  compat/poll.cpp:458:35: error: no matching function for call to 'zmalloc'
          wait->events = (struct pollfd *) zmalloc(size * sizeof(struct pollfd));
                                           ^~~~~~~
  ./macros.hpp:85:4: note: candidate template ignored: couldn't infer template argument 'T'
  T *zmalloc(size_t size)
     ^
  ./macros.hpp:74:4: note: candidate function template not viable: requires 0 arguments, but 1 was provided
  T *zmalloc()
     ^
  compat/poll.cpp:466:38: error: no matching function for call to 'zmalloc'
          current->events = (struct pollfd *) zmalloc(size * sizeof(struct pollfd));
                                              ^~~~~~~
  ./macros.hpp:85:4: note: candidate template ignored: couldn't infer template argument 'T'
  T *zmalloc(size_t size)
     ^
  ./macros.hpp:74:4: note: candidate function template not viable: requires 0 arguments, but 1 was provided
  T *zmalloc()

Replace the uses of "old style" malloc with the new type-safe
function introduced recently.

Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Change-Id: Ib1660f6a548c155f021843b7476d5d64c06c6e5a

src/common/compat/poll.cpp

index 0617905a6ee65e37656956b650a41838cb9e1393..dfe05d59eec70afd3aaf6e9daffe83f733ac5132 100644 (file)
@@ -455,17 +455,17 @@ int compat_poll_create(struct lttng_poll_event *events, int size)
        wait = &events->wait;
 
        /* This *must* be freed by using lttng_poll_free() */
-       wait->events = (struct pollfd *) zmalloc(size * sizeof(struct pollfd));
+       wait->events = calloc<struct pollfd>(size);
        if (wait->events == NULL) {
-               PERROR("zmalloc struct pollfd");
+               PERROR("Failed to allocate wait events array during poll initialization");
                goto error;
        }
 
        wait->alloc_size = wait->init_size = size;
 
-       current->events = (struct pollfd *) zmalloc(size * sizeof(struct pollfd));
+       current->events = calloc<struct pollfd>(size);
        if (current->events == NULL) {
-               PERROR("zmalloc struct current pollfd");
+               PERROR("Failed to allocate current events array during poll initialization");
                goto error;
        }
 
This page took 0.030384 seconds and 5 git commands to generate.