mirror of
https://github.com/justinethier/cyclone.git
synced 2025-05-23 20:15:05 +02:00
WIP, changing how strings are allocated
This commit is contained in:
parent
e6b538f594
commit
9579a803bf
1 changed files with 7 additions and 4 deletions
|
@ -186,10 +186,13 @@ typedef struct {gc_header_type hdr; tag_type tag; double value;} double_type;
|
|||
|
||||
/* Define string type */
|
||||
typedef struct {gc_header_type hdr; tag_type tag; int len; char *str;} string_type;
|
||||
//#define make_cstring(cs, len, s) \
|
||||
// string_type cs; cs.tag = string_tag; cs.len = len; cs.str = s;
|
||||
// TODO: all of the dhalloc below needs to go away for this GC. maybe
|
||||
// just plan on having strings be allocated separately like vectors.
|
||||
// TODO: new way to allocate strings, but this requires changes to
|
||||
// all functions that allocate strings, the GC, cgen, and maybe more.
|
||||
#define make_string(cs, len, s) string_type cs; \
|
||||
{ cs.tag = string_tag; cs.len = len; \
|
||||
cs.str = alloca(sizeof(char) * (len + 1)); \
|
||||
strcpy(cs.str, s);}
|
||||
// TODO: all of the dhalloc below needs to go away...
|
||||
#define make_string(cv,s) string_type cv; cv.tag = string_tag; \
|
||||
{ int len = strlen(s); cv.str = dhallocp; \
|
||||
if ((dhallocp + len + 1) >= dhbottom + global_heap_size) { \
|
||||
|
|
Loading…
Add table
Reference in a new issue