dwww Home | Manual pages | Find package

wl_array(3)                         Wayland                        wl_array(3)

NAME
       wl_array

SYNOPSIS
       #include <wayland-util.h>

   Public Member Functions
       void wl_array_init (struct wl_array *array)
       void wl_array_release (struct wl_array *array)
       void * wl_array_add (struct wl_array *array, size_t size)
       int wl_array_copy (struct wl_array *array, struct wl_array *source)

   Data Fields
       size_t size
       size_t alloc
       void * data

   Related Functions
       (Note that these are not member functions.)
       #define wl_array_for_each(pos,  array)

Detailed Description
       Dynamic array

       A wl_array is a dynamic array that can only grow until released. It is
       intended for relatively small allocations whose size is variable or not
       known in advance. While construction of a wl_array does not require all
       elements to be of the same size, wl_array_for_each() does require all
       elements to have the same type and size.

Member Function Documentation
   void * wl_array_add (struct wl_array * array, size_t size)
       Increases the size of the array by size bytes.

       Parameters
           array Array whose size is to be increased
           size Number of bytes to increase the size of the array by

       Returns
           A pointer to the beginning of the newly appended space, or NULL
           when resizing fails.

   int wl_array_copy (struct wl_array * array, struct wl_array * source)
       Copies the contents of source to array.

       Parameters
           array Destination array to copy to
           source Source array to copy from

       Returns
           0 on success, or -1 on failure

   void wl_array_init (struct wl_array * array)
       Initializes the array.

       Parameters
           array Array to initialize

   void wl_array_release (struct wl_array * array)
       Releases the array data.

       Note
           Leaves the array in an invalid state.

       Parameters
           array Array whose data is to be released

Friends And Related Function Documentation
   #define wl_array_for_each(pos, array) [related]
       Value:

            for (pos = (array)->data;                                                    (const char *) pos < ((const char *) (array)->data + (array)->size);              (pos)++)
       Iterates over an array.

       This macro expresses a for-each iterator for wl_array. It assigns each
       element in the array to pos, which can then be referenced in a trailing
       code block. pos must be a pointer to the array element type, and all
       array elements must be of the same type and size.

       Parameters
           pos Cursor that each array element will be assigned to
           array Array to iterate over

       See also
           wl_list_for_each()

Field Documentation
   size_t wl_array::alloc
       Allocated space

   void* wl_array::data
       Array data

   size_t wl_array::size
       Array size

Author
       Generated automatically by Doxygen for Wayland from the source code.

Version 1.20.0                  Wed Sep 14 2022                    wl_array(3)

Generated by dwww version 1.14 on Fri Jan 24 06:16:07 CET 2025.