get_region
Description:
public void* get_region (size_t element_size, size_t offset, size_t n_elements)
Gets a pointer to a region in this.
The region starts at offset many bytes from the start of the data and contains n_elements many elements of
element_size size.
n_elements may be zero, but element_size must always be non-zero. Ideally, element_size is a static
constant (eg: `sizeof` a struct).
This function does careful bounds checking (including checking for arithmetic overflows) and returns a non-`NULL` pointer if the specified region lies entirely within the this. If the region is in some way out of range, or if an overflow has occurred, then `NULL` is returned.
Note: it is possible to have a valid zero-size region. In this case, the returned pointer will be equal to the base pointer of the data of
this, plus offset. This will be non-`NULL` except for the case where
this itself was a zero-sized region. Since it is unlikely that you will be using this function to check for a zero-sized region in a
zero-sized this, `NULL` effectively always means ‘error’.
Parameters:
| this |
a [struct@GLib.Bytes] |
| element_size |
a non-zero element size |
| offset |
an offset to the start of the region within the this |
| n_elements |
the number of elements in the region |
Returns:
|
the requested region, or `NULL` in case of an error |