Github User Fetcher 1.0.0
C Application with Server and GUI
|
Go to the source code of this file.
Macros | |
#define | g_alloca(size) alloca (size) |
#define | g_alloca0(size) ((size) == 0 ? NULL : memset (g_alloca (size), 0, (size))) |
#define | g_newa(struct_type, n_structs) ((struct_type*) g_alloca (sizeof (struct_type) * (gsize) (n_structs))) |
#define | g_newa0(struct_type, n_structs) ((struct_type*) g_alloca0 (sizeof (struct_type) * (gsize) (n_structs))) |
#define g_alloca | ( | size | ) | alloca (size) |
g_alloca: @size: number of bytes to allocate.
Allocates @size bytes on the stack; these bytes will be freed when the current stack frame is cleaned up. This macro essentially just wraps the alloca() function present on most UNIX variants. Thus it provides the same advantages and pitfalls as alloca():
Returns: space for @size bytes, allocated on the stack
g_alloca0: @size: number of bytes to allocate.
Wraps g_alloca() and initializes allocated memory to zeroes. If @size is 0
it returns NULL.
Note that the @size argument will be evaluated multiple times.
Returns: (nullable) (transfer full): space for @size bytes, allocated on the stack
Since: 2.72
#define g_newa | ( | struct_type, | |
n_structs ) ((struct_type*) g_alloca (sizeof (struct_type) * (gsize) (n_structs))) |
g_newa: @struct_type: Type of memory chunks to be allocated @n_structs: Number of chunks to be allocated
Wraps g_alloca() in a more typesafe manner.
As mentioned in the documentation for g_alloca(), @n_structs must always be entirely under the control of the program, or you may introduce a denial of service vulnerability. In addition, the multiplication of @struct_type by @n_structs is not checked, so an overflow may lead to a remote code execution vulnerability.
Returns: Pointer to stack space for @n_structs chunks of type @struct_type
#define g_newa0 | ( | struct_type, | |
n_structs ) ((struct_type*) g_alloca0 (sizeof (struct_type) * (gsize) (n_structs))) |
g_newa0: @struct_type: the type of the elements to allocate. @n_structs: the number of elements to allocate.
Wraps g_alloca0() in a more typesafe manner.
Returns: (nullable) (transfer full): Pointer to stack space for @n_structs chunks of type @struct_type
Since: 2.72