Initialize the 'immutable' field

This commit is contained in:
Justin Ethier 2019-04-30 17:51:53 -04:00
parent d0b5c4ff75
commit 465167445f

View file

@ -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, \