wl_array

Section: Wayland (3)
Updated: Thu Jan 28 2021
Page Index
 

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.


 

Index

NAME
SYNOPSIS
Public Member Functions
Data Fields
Related Functions
Detailed Description
Member Function Documentation
void * wl_array_add (struct wl_array * array, size_t size)
int wl_array_copy (struct wl_array * array, struct wl_array * source)
void wl_array_init (struct wl_array * array)
void wl_array_release (struct wl_array * array)
Friends And Related Function Documentation
#define wl_array_for_each(pos, array) [related]
Field Documentation
size_t wl_array::alloc
void* wl_array::data
size_t wl_array::size
Author