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