1/* >>>> Generated by mkmark.rkt from mzmarksrc.c <<<< */
2
3static int native_closure_SIZE(void *p, struct NewGC *gc) {
4#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
5  Scheme_Native_Closure *c = (Scheme_Native_Closure *)p;
6  int closure_size = ((Scheme_Native_Lambda *)GC_resolve2(c->code, gc))->closure_size;
7
8  if (closure_size < 0) {
9    closure_size = -(closure_size + 1);
10  }
11
12  gcBYTES_TO_WORDS((sizeof(Scheme_Native_Closure)
13		    + (closure_size - mzFLEX_DELTA) * sizeof(Scheme_Object *)));
14#else
15  return 0;
16#endif
17}
18
19static int native_closure_MARK(void *p, struct NewGC *gc) {
20#ifndef GC_NO_MARK_PROCEDURE_NEEDED
21  Scheme_Native_Closure *c = (Scheme_Native_Closure *)p;
22  int closure_size = ((Scheme_Native_Lambda *)GC_resolve2(c->code, gc))->closure_size;
23
24  if (closure_size < 0) {
25    closure_size = -(closure_size + 1);
26  }
27
28  {
29  int i = closure_size;
30# define CLOSURE_DATA_TYPE Scheme_Native_Lambda
31# include "mzclpf_decl.inc"
32
33  gcMARK2(c->code, gc);
34
35# include "mzclpf_pre.inc"
36
37  while (i--)
38    gcMARK2(c->vals[i], gc);
39
40# include "mzclpf_post.inc"
41# undef CLOSURE_DATA_TYPE
42  }
43
44# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
45  return 0;
46# else
47  return
48  gcBYTES_TO_WORDS((sizeof(Scheme_Native_Closure)
49		    + (closure_size - mzFLEX_DELTA) * sizeof(Scheme_Object *)));
50# endif
51#endif
52}
53
54static int native_closure_FIXUP(void *p, struct NewGC *gc) {
55#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
56  Scheme_Native_Closure *c = (Scheme_Native_Closure *)p;
57  int closure_size = ((Scheme_Native_Lambda *)GC_resolve2(c->code, gc))->closure_size;
58
59  if (closure_size < 0) {
60    closure_size = -(closure_size + 1);
61  }
62
63  {
64  int i = closure_size;
65
66  gcFIXUP2(c->code, gc);
67
68
69  while (i--)
70    gcFIXUP2(c->vals[i], gc);
71
72  }
73
74# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
75  return 0;
76# else
77  return
78  gcBYTES_TO_WORDS((sizeof(Scheme_Native_Closure)
79		    + (closure_size - mzFLEX_DELTA) * sizeof(Scheme_Object *)));
80# endif
81#endif
82}
83
84#define native_closure_IS_ATOMIC 0
85#define native_closure_IS_CONST_SIZE 0
86
87
88static int mark_jit_state_SIZE(void *p, struct NewGC *gc) {
89#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
90  gcBYTES_TO_WORDS(sizeof(mz_jit_state));
91#else
92  return 0;
93#endif
94}
95
96static int mark_jit_state_MARK(void *p, struct NewGC *gc) {
97#ifndef GC_NO_MARK_PROCEDURE_NEEDED
98  mz_jit_state *j = (mz_jit_state *)p;
99  gcMARK2(j->mappings, gc);
100  gcMARK2(j->self_lam, gc);
101  gcMARK2(j->example_argv, gc);
102  gcMARK2(j->nc, gc);
103  gcMARK2(j->retaining_data, gc);
104  gcMARK2(j->patch_depth, gc);
105
106# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
107  return 0;
108# else
109  return
110  gcBYTES_TO_WORDS(sizeof(mz_jit_state));
111# endif
112#endif
113}
114
115static int mark_jit_state_FIXUP(void *p, struct NewGC *gc) {
116#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
117  mz_jit_state *j = (mz_jit_state *)p;
118  gcFIXUP2(j->mappings, gc);
119  gcFIXUP2(j->self_lam, gc);
120  gcFIXUP2(j->example_argv, gc);
121  gcFIXUP2(j->nc, gc);
122  gcFIXUP2(j->retaining_data, gc);
123  gcFIXUP2(j->patch_depth, gc);
124
125# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
126  return 0;
127# else
128  return
129  gcBYTES_TO_WORDS(sizeof(mz_jit_state));
130# endif
131#endif
132}
133
134#define mark_jit_state_IS_ATOMIC 0
135#define mark_jit_state_IS_CONST_SIZE 1
136
137
138static int native_unclosed_proc_SIZE(void *p, struct NewGC *gc) {
139#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
140  gcBYTES_TO_WORDS(sizeof(Scheme_Native_Lambda));
141#else
142  return 0;
143#endif
144}
145
146static int native_unclosed_proc_MARK(void *p, struct NewGC *gc) {
147#ifndef GC_NO_MARK_PROCEDURE_NEEDED
148  Scheme_Native_Lambda *d = (Scheme_Native_Lambda *)p;
149  int i;
150
151  gcMARK2(d->u2.name, gc);
152  if (d->retained) {
153    for (i = SCHEME_INT_VAL(d->retained[0]); i--; ) {
154      gcMARK2(d->retained[i], gc);
155    }
156  }
157  if (d->closure_size < 0) {
158    gcMARK2(d->u.arities, gc);
159  }
160  gcMARK2(d->tl_map, gc);
161  gcMARK2(d->eq_key, gc);
162
163# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
164  return 0;
165# else
166  return
167  gcBYTES_TO_WORDS(sizeof(Scheme_Native_Lambda));
168# endif
169#endif
170}
171
172static int native_unclosed_proc_FIXUP(void *p, struct NewGC *gc) {
173#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
174  Scheme_Native_Lambda *d = (Scheme_Native_Lambda *)p;
175  int i;
176
177  gcFIXUP2(d->u2.name, gc);
178  if (d->retained) {
179    for (i = SCHEME_INT_VAL(d->retained[0]); i--; ) {
180      gcFIXUP2(d->retained[i], gc);
181    }
182  }
183  if (d->closure_size < 0) {
184    gcFIXUP2(d->u.arities, gc);
185  }
186  gcFIXUP2(d->tl_map, gc);
187  gcFIXUP2(d->eq_key, gc);
188
189# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
190  return 0;
191# else
192  return
193  gcBYTES_TO_WORDS(sizeof(Scheme_Native_Lambda));
194# endif
195#endif
196}
197
198#define native_unclosed_proc_IS_ATOMIC 0
199#define native_unclosed_proc_IS_CONST_SIZE 1
200
201
202static int native_unclosed_proc_plus_case_SIZE(void *p, struct NewGC *gc) {
203#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
204  gcBYTES_TO_WORDS(sizeof(Scheme_Native_Lambda_Plus_Case));
205#else
206  return 0;
207#endif
208}
209
210static int native_unclosed_proc_plus_case_MARK(void *p, struct NewGC *gc) {
211#ifndef GC_NO_MARK_PROCEDURE_NEEDED
212  Scheme_Native_Lambda_Plus_Case *d = (Scheme_Native_Lambda_Plus_Case *)p;
213
214  native_unclosed_proc_MARK(p, gc);
215  gcMARK2(d->case_lam, gc);
216
217# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
218  return 0;
219# else
220  return
221  gcBYTES_TO_WORDS(sizeof(Scheme_Native_Lambda_Plus_Case));
222# endif
223#endif
224}
225
226static int native_unclosed_proc_plus_case_FIXUP(void *p, struct NewGC *gc) {
227#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
228  Scheme_Native_Lambda_Plus_Case *d = (Scheme_Native_Lambda_Plus_Case *)p;
229
230  native_unclosed_proc_FIXUP(p, gc);
231  gcFIXUP2(d->case_lam, gc);
232
233# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
234  return 0;
235# else
236  return
237  gcBYTES_TO_WORDS(sizeof(Scheme_Native_Lambda_Plus_Case));
238# endif
239#endif
240}
241
242#define native_unclosed_proc_plus_case_IS_ATOMIC 0
243#define native_unclosed_proc_plus_case_IS_CONST_SIZE 1
244
245
246