|
x-engine-c v0.2.13
The C engine for x-lang
|
Opaque pointer type – wraps a raw void* as a managed object.
More...
#include "x-type.h"Go to the source code of this file.
Macros | |
| #define | X_TYPE_PTR_NAME "POINTER" |
Predicates | |
| #define | x_obj_type_isptr(B, X) x_obj_is_type((B), (X), X_TYPE_PTR_NAME) |
Accessors | |
| #define | x_ptrval(X) x_firstptr((X)) |
Constructors | |
| #define | x_mkptr(B, P) x_make_ptr((B), X_OBJ_FLAG_NONE, (P)) |
| #define | x_mkfptr(B, F, P) x_make_ptr((B), (F), (P)) |
| #define | x_mkptrown(B, P) x_make_ptr((B), X_OBJ_FLAG_OWN, (P)) |
| #define | x_mkfptrown(B, F, P) x_make_ptr((B), X_OBJ_FLAG_OWN | (F), (P)) |
Functions | |
| x_obj_t * | x_make_ptr (x_obj_t *p_base, x_obj_flag_t flags, void *p) |
| x_obj_t * | x_type_ptr_struct (x_obj_t *p_base, x_obj_t *p_args) |
| x_obj_t * | x_type_ptr_register (x_obj_t *p_base, x_obj_t *p_args) |
| x_obj_t * | x_type_ptr_make (x_obj_t *p_base, x_obj_t *p_args) |
Opaque pointer type – wraps a raw void* as a managed object.
| #define x_mkfptr | ( | B, | |
| F, | |||
| P | |||
| ) | x_make_ptr((B), (F), (P)) |
Create a pointer object with explicit flags.
| #define x_mkfptrown | ( | B, | |
| F, | |||
| P | |||
| ) | x_make_ptr((B), X_OBJ_FLAG_OWN | (F), (P)) |
Create an owning pointer object with extra flags.
| #define x_mkptr | ( | B, | |
| P | |||
| ) | x_make_ptr((B), X_OBJ_FLAG_NONE, (P)) |
Create a pointer object with default flags.
| #define x_mkptrown | ( | B, | |
| P | |||
| ) | x_make_ptr((B), X_OBJ_FLAG_OWN, (P)) |
Create an owning pointer object.
| #define x_obj_type_isptr | ( | B, | |
| X | |||
| ) | x_obj_is_type((B), (X), X_TYPE_PTR_NAME) |
Test whether X is a POINTER object.
| #define x_ptrval | ( | X | ) | x_firstptr((X)) |
Extract the raw void* from a pointer object.
| #define X_TYPE_PTR_NAME "POINTER" |
Canonical type name.
| x_obj_t * x_make_ptr | ( | x_obj_t * | p_base, |
| x_obj_flag_t | flags, | ||
| void * | p | ||
| ) |
Allocate a POINTER object wrapping p.
Allocate a POINTER object wrapping a raw void pointer.
Packs p and flags into stack-allocated args and delegates to x_type_ptr_make() for type-system allocation.
| p_base | Base (execution context). |
| flags | Object flags (e.g. X_OBJ_FLAG_OWN). |
| p | Raw pointer to wrap. |
Type-system make handler for POINTER objects.
Type-system make handler for POINTER objects.
Extracts the raw pointer from p_args[0] and optional flags from p_args[1], then allocates via x_obj_make().
| p_base | Base (execution context). |
| p_args | Argument list: (pointer-atom [flags-atom]). |
Register (or retrieve) the POINTER type in the type alist.
Register (or retrieve) the POINTER type in the type alist.
Calls x_type_struct_get() with the POINTER name and struct constructor.
| p_base | Base (execution context). |
| p_args | Unused. |