on master help sign in
Remove _null macro
8ce876cJorge Acereda
rts/idris_rts.c+2−1
@@ -274,7 +274,8 @@ VAL MKFLOATc(VM* vm, double val) {
274
274
275static VAL mkstrlen(VM* vm, const char * str, size_t len, int outer) {
275static VAL mkstrlen(VM* vm, const char * str, size_t len, int outer) {
276 String * cl = allocStr(vm, len, outer);
276 String * cl = allocStr(vm, len, outer);
277+ // hdr.u8 used to mark a null string
277− cl->_null = str == NULL;
278+ cl->hdr.u8 = str == NULL;
278 memcpy(cl->str, str, len);
279 memcpy(cl->str, str, len);
279 return (VAL)cl;
280 return (VAL)cl;
280}
281}
rts/idris_rts.h+2−2
@@ -73,7 +73,6 @@ typedef struct Float {
73typedef struct String {
73typedef struct String {
74 Hdr hdr;
74 Hdr hdr;
75 size_t slen;
75 size_t slen;
76−#define _null hdr.u8
77 char str[0];
76 char str[0];
78} String;
77} String;
79
78
@@ -241,7 +240,8 @@ typedef void(*func)(VM*, VAL*);
241
240
242// Retrieving values
241// Retrieving values
243static inline char * getstr(String * x) {
242static inline char * getstr(String * x) {
243+ // hdr.u8 used to mark a null string
244− return x->_null? NULL : x->str;
244+ return x->hdr.u8? NULL : x->str;
245}
245}
246
246
247static inline size_t getstrlen(String * x) {
247static inline size_t getstrlen(String * x) {