aboutsummaryrefslogtreecommitdiff
path: root/src/stdlib/pointers.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/stdlib/pointers.h')
-rw-r--r--src/stdlib/pointers.h42
1 files changed, 25 insertions, 17 deletions
diff --git a/src/stdlib/pointers.h b/src/stdlib/pointers.h
index 001dc5ce..522a97be 100644
--- a/src/stdlib/pointers.h
+++ b/src/stdlib/pointers.h
@@ -12,25 +12,33 @@
Text_t Pointer$as_text(const void *x, bool colorize, const TypeInfo_t *type);
PUREFUNC int32_t Pointer$compare(const void *x, const void *y, const TypeInfo_t *type);
PUREFUNC bool Pointer$equal(const void *x, const void *y, const TypeInfo_t *type);
-PUREFUNC bool Pointer$is_none(const void *x, const TypeInfo_t*);
+PUREFUNC bool Pointer$is_none(const void *x, const TypeInfo_t *);
void Pointer$serialize(const void *obj, FILE *out, Table_t *pointers, const TypeInfo_t *type);
void Pointer$deserialize(FILE *in, void *outval, List_t *pointers, const TypeInfo_t *type);
-#define Null(t) (t*)NULL
-#define POINTER_TYPE(_sigil, _pointed) (&(TypeInfo_t){\
- .size=sizeof(void*), .align=__alignof__(void*), .tag=PointerInfo, .PointerInfo.sigil=_sigil, .PointerInfo.pointed=_pointed})
-
-#define Pointer$metamethods { \
- .as_text=Pointer$as_text, \
- .compare=Pointer$compare, \
- .equal=Pointer$equal, \
- .is_none=Pointer$is_none, \
- .serialize=Pointer$serialize, \
- .deserialize=Pointer$deserialize, \
-}
-
-#define Pointer$info(sigil_expr, pointed_info) &((TypeInfo_t){.size=sizeof(void*), .align=__alignof__(void*), \
- .tag=PointerInfo, .PointerInfo={.sigil=sigil_expr, .pointed=pointed_info}, \
- .metamethods=Pointer$metamethods})
+#define Null(t) (t *)NULL
+#define POINTER_TYPE(_sigil, _pointed) \
+ (&(TypeInfo_t){.size = sizeof(void *), \
+ .align = __alignof__(void *), \
+ .tag = PointerInfo, \
+ .PointerInfo.sigil = _sigil, \
+ .PointerInfo.pointed = _pointed})
+
+#define Pointer$metamethods \
+ { \
+ .as_text = Pointer$as_text, \
+ .compare = Pointer$compare, \
+ .equal = Pointer$equal, \
+ .is_none = Pointer$is_none, \
+ .serialize = Pointer$serialize, \
+ .deserialize = Pointer$deserialize, \
+ }
+
+#define Pointer$info(sigil_expr, pointed_info) \
+ &((TypeInfo_t){.size = sizeof(void *), \
+ .align = __alignof__(void *), \
+ .tag = PointerInfo, \
+ .PointerInfo = {.sigil = sigil_expr, .pointed = pointed_info}, \
+ .metamethods = Pointer$metamethods})
// vim: ts=4 sw=0 et cino=L2,l1,(0,W4,m1,\:0