mirror of
https://github.com/justinethier/cyclone.git
synced 2025-05-23 20:15:05 +02:00
Initialize the 'immutable' field
This commit is contained in:
parent
d0b5c4ff75
commit
465167445f
1 changed files with 22 additions and 2 deletions
|
@ -613,6 +613,7 @@ typedef cvar_type *cvar;
|
|||
cvar_type n; \
|
||||
n.hdr.mark = gc_color_red; \
|
||||
n.hdr.grayed = 0; \
|
||||
n.hdr.immutable = 0; \
|
||||
n.tag = cvar_tag; \
|
||||
n.pvar = v;
|
||||
|
||||
|
@ -635,6 +636,7 @@ typedef c_opaque_type *c_opaque;
|
|||
c_opaque_type var; \
|
||||
var.hdr.mark = gc_color_red; \
|
||||
var.hdr.grayed = 0; \
|
||||
var.hdr.immutable = 0; \
|
||||
var.tag = c_opaque_tag; \
|
||||
var.ptr = p;
|
||||
|
||||
|
@ -839,6 +841,7 @@ typedef struct {
|
|||
{ int len = strlen(s); \
|
||||
cs.hdr.mark = gc_color_red; \
|
||||
cs.hdr.grayed = 0; \
|
||||
cs.hdr.immutable = 0; \
|
||||
cs.tag = string_tag; \
|
||||
cs.num_cp = len; \
|
||||
cs.len = len; \
|
||||
|
@ -853,6 +856,7 @@ typedef struct {
|
|||
{ int len = length; \
|
||||
cs.hdr.mark = gc_color_red; \
|
||||
cs.hdr.grayed = 0; \
|
||||
cs.hdr.immutable = 0; \
|
||||
cs.tag = string_tag; cs.len = len; \
|
||||
cs.num_cp = len; \
|
||||
cs.str = alloca(sizeof(char) * (len + 1)); \
|
||||
|
@ -864,7 +868,7 @@ typedef struct {
|
|||
* No allocation is done for the given C string.
|
||||
*/
|
||||
#define make_string_noalloc(cs, s, length) string_type cs; \
|
||||
{ cs.hdr.mark = gc_color_red; cs.hdr.grayed = 0; \
|
||||
{ cs.hdr.mark = gc_color_red; cs.hdr.grayed = 0; cs.hdr.immutable = 0; \
|
||||
cs.tag = string_tag; cs.len = length; \
|
||||
cs.num_cp = length; \
|
||||
cs.str = s; }
|
||||
|
@ -874,6 +878,7 @@ typedef struct {
|
|||
{ int len = strlen(s); \
|
||||
cs.hdr.mark = gc_color_red; \
|
||||
cs.hdr.grayed = 0; \
|
||||
cs.hdr.immutable = 0; \
|
||||
cs.tag = string_tag; \
|
||||
cs.num_cp = Cyc_utf8_count_code_points((uint8_t *)s); \
|
||||
if (cs.num_cp < 0) { \
|
||||
|
@ -891,6 +896,7 @@ typedef struct {
|
|||
{ int len = length; \
|
||||
cs.hdr.mark = gc_color_red; \
|
||||
cs.hdr.grayed = 0; \
|
||||
cs.hdr.immutable = 0; \
|
||||
cs.tag = string_tag; cs.len = len; \
|
||||
cs.num_cp = num_code_points; \
|
||||
cs.str = alloca(sizeof(char) * (len + 1)); \
|
||||
|
@ -902,7 +908,7 @@ typedef struct {
|
|||
* No allocation is done for the given C string.
|
||||
*/
|
||||
#define make_utf8_string_noalloc(cs, s, length) string_type cs; \
|
||||
{ cs.hdr.mark = gc_color_red; cs.hdr.grayed = 0; \
|
||||
{ cs.hdr.mark = gc_color_red; cs.hdr.grayed = 0; cs.hdr.immutable = 0; \
|
||||
cs.tag = string_tag; cs.len = length; \
|
||||
cs.num_cp = length; \
|
||||
cs.str = s; }
|
||||
|
@ -920,6 +926,7 @@ typedef struct {
|
|||
&heap_grown); \
|
||||
((string_type *) _s)->hdr.mark = ((gc_thread_data *)data)->gc_alloc_color; \
|
||||
((string_type *) _s)->hdr.grayed = 0; \
|
||||
((string_type *) _s)->hdr.immutable = 0; \
|
||||
((string_type *) _s)->tag = string_tag; \
|
||||
((string_type *) _s)->len = _len; \
|
||||
((string_type *) _s)->num_cp = _num_cp; \
|
||||
|
@ -928,6 +935,7 @@ typedef struct {
|
|||
_s = alloca(sizeof(string_type)); \
|
||||
((string_type *)_s)->hdr.mark = gc_color_red; \
|
||||
((string_type *)_s)->hdr.grayed = 0; \
|
||||
((string_type *)_s)->hdr.immutable = 0; \
|
||||
((string_type *)_s)->tag = string_tag; \
|
||||
((string_type *)_s)->len = _len; \
|
||||
((string_type *)_s)->num_cp = _num_cp; \
|
||||
|
@ -944,6 +952,7 @@ typedef struct {
|
|||
&heap_grown); \
|
||||
((bytevector) _bv)->hdr.mark = ((gc_thread_data *)data)->gc_alloc_color; \
|
||||
((bytevector) _bv)->hdr.grayed = 0; \
|
||||
((bytevector) _bv)->hdr.immutable = 0; \
|
||||
((bytevector) _bv)->tag = bytevector_tag; \
|
||||
((bytevector) _bv)->len = _len; \
|
||||
((bytevector) _bv)->data = (char *)(((char *)_bv) + sizeof(bytevector_type)); \
|
||||
|
@ -951,6 +960,7 @@ typedef struct {
|
|||
_bv = alloca(sizeof(bytevector_type)); \
|
||||
((bytevector) _bv)->hdr.mark = gc_color_red; \
|
||||
((bytevector) _bv)->hdr.grayed = 0; \
|
||||
((bytevector) _bv)->hdr.immutable = 0; \
|
||||
((bytevector) _bv)->tag = bytevector_tag; \
|
||||
((bytevector) _bv)->len = _len; \
|
||||
((bytevector) _bv)->data = alloca(sizeof(char) * _len); \
|
||||
|
@ -1003,6 +1013,7 @@ typedef struct {
|
|||
port_type p; \
|
||||
p.hdr.mark = gc_color_red; \
|
||||
p.hdr.grayed = 0; \
|
||||
p.hdr.immutable = 0; \
|
||||
p.tag = port_tag; \
|
||||
p.fp = f; \
|
||||
p.mode = m; \
|
||||
|
@ -1024,6 +1035,7 @@ typedef struct {
|
|||
port_type p; \
|
||||
p.hdr.mark = gc_color_red; \
|
||||
p.hdr.grayed = 0; \
|
||||
p.hdr.immutable = 0; \
|
||||
p.tag = port_tag; \
|
||||
p.fp = f; \
|
||||
p.mode = 1; \
|
||||
|
@ -1061,6 +1073,7 @@ typedef struct { vector_type v; object arr[4]; } vector_4_type;
|
|||
vector_type v; \
|
||||
v.hdr.mark = gc_color_red; \
|
||||
v.hdr.grayed = 0; \
|
||||
v.hdr.immutable = 0; \
|
||||
v.tag = vector_tag; \
|
||||
v.num_elements = 0; \
|
||||
v.elements = NULL;
|
||||
|
@ -1069,6 +1082,7 @@ typedef struct { vector_type v; object arr[4]; } vector_4_type;
|
|||
vector_type *v = alloca(sizeof(vector_type)); \
|
||||
v->hdr.mark = gc_color_red; \
|
||||
v->hdr.grayed = 0; \
|
||||
v->hdr.immutable = 0; \
|
||||
v->tag = vector_tag; \
|
||||
v->num_elements = 0; \
|
||||
v->elements = NULL;
|
||||
|
@ -1092,6 +1106,7 @@ typedef bytevector_type *bytevector;
|
|||
bytevector_type v; \
|
||||
v.hdr.mark = gc_color_red; \
|
||||
v.hdr.grayed = 0; \
|
||||
v.hdr.immutable = 0; \
|
||||
v.tag = bytevector_tag; \
|
||||
v.len = 0; \
|
||||
v.data = NULL;
|
||||
|
@ -1100,6 +1115,7 @@ typedef bytevector_type *bytevector;
|
|||
bytevector_type *v = alloca(sizeof(bytevector_type)); \
|
||||
v->hdr.mark = gc_color_red; \
|
||||
v->hdr.grayed = 0; \
|
||||
v->hdr.immutable = 0; \
|
||||
v->tag = bytevector_tag; \
|
||||
v->len = 0; \
|
||||
v->data = NULL;
|
||||
|
@ -1128,6 +1144,7 @@ typedef pair_type *pair;
|
|||
pair_type n; \
|
||||
n.hdr.mark = gc_color_red; \
|
||||
n.hdr.grayed = 0; \
|
||||
n.hdr.immutable = 0; \
|
||||
n.tag = pair_tag; \
|
||||
n.pair_car = a; \
|
||||
n.pair_cdr = d;
|
||||
|
@ -1136,6 +1153,7 @@ typedef pair_type *pair;
|
|||
pair_type *n = alloca(sizeof(pair_type)); \
|
||||
n->hdr.mark = gc_color_red; \
|
||||
n->hdr.grayed = 0; \
|
||||
n->hdr.immutable = 0; \
|
||||
n->tag = pair_tag; \
|
||||
n->pair_car = a; \
|
||||
n->pair_cdr = d;
|
||||
|
@ -1143,6 +1161,7 @@ typedef pair_type *pair;
|
|||
#define set_pair(n,a,d) \
|
||||
n->hdr.mark = gc_color_red; \
|
||||
n->hdr.grayed = 0; \
|
||||
n->hdr.immutable = 0; \
|
||||
n->tag = pair_tag; \
|
||||
n->pair_car = a; \
|
||||
n->pair_cdr = d;
|
||||
|
@ -1150,6 +1169,7 @@ typedef pair_type *pair;
|
|||
#define set_pair_as_expr(n,a,d) \
|
||||
(((pair)(n))->hdr.mark = gc_color_red, \
|
||||
((pair)(n))->hdr.grayed = 0, \
|
||||
((pair)(n))->hdr.immutable = 0; \
|
||||
((pair)(n))->tag = pair_tag, \
|
||||
((pair)(n))->pair_car = a, \
|
||||
((pair)(n))->pair_cdr = d, \
|
||||
|
|
Loading…
Add table
Reference in a new issue