remove "array of tagged" GC support
The GC supported allocation for an array of objects where the first one provides a tag, but at this point it was used only in some corners. Change those corner and simplify the GC by removing support for arrays of tagged objects. The main corner to clean up is in the handling of a macro-expansion observer and inferred names. Move those into the compile-time environment. It's possible that name inference has been broken by the changes, but in addition to passing the tests, the generated bytecode for the base collections is exactly the same as before the change.
This commit is contained in:
parent
bcd3d814fd
commit
28047789a9
|
@ -65,6 +65,9 @@
|
|||
(test 'w object-name (let ([w (let ([x 5]) (lambda () x))]) w))
|
||||
(test 'z object-name (let ([z (let ([x 5]) (cons 1 2) (lambda () x))]) z))
|
||||
|
||||
(test 'w object-name (let ([w (let () (lambda () 'x))]) w))
|
||||
(test 'z object-name (let ([z (let () (cons 1 2) (lambda () 'x))]) z))
|
||||
|
||||
(set! f (lambda () 10))
|
||||
(test 'f object-name f)
|
||||
|
||||
|
|
|
@ -95,14 +95,6 @@ Racket allocates the following kinds of memory objects:
|
|||
* Array - The allocated object is an array of pointers to other
|
||||
allocated objects.
|
||||
|
||||
* Tagged Array - The allocated object is an array of tagged
|
||||
objects. Every tagged object in the array is the same size and has
|
||||
the same effective tag. After allocating the memory, Racket sets
|
||||
the tag on the initial array element, but might not set the tag of
|
||||
other elements until later. (Even if tags are not set for all
|
||||
objects, the mark and fixup operations might be applied to all of
|
||||
them.)
|
||||
|
||||
* Pair - specialization of Tagged to pairs.
|
||||
|
||||
* Interior Array - Like array objects, but pointers to the object can
|
||||
|
|
|
@ -204,12 +204,6 @@ GC2_EXTERN void *GC_malloc_pair(void *car, void *cdr);
|
|||
The main potential advantage is that `car' and `cdr' don't
|
||||
have to be retained by the callee in the case of a GC. */
|
||||
|
||||
GC2_EXTERN void *GC_malloc_array_tagged(size_t);
|
||||
/*
|
||||
Alloc an array of tagged items. Racket sets the tag in the first
|
||||
item before a collection, by maybe not all items. When traversing,
|
||||
use the first one for size. */
|
||||
|
||||
GC2_EXTERN void *GC_malloc_atomic(size_t size_in_bytes);
|
||||
/*
|
||||
Alloc pointerless memory (not necessarily zeroed). */
|
||||
|
@ -605,6 +599,8 @@ GC2_EXTERN void GC_set_backpointer_object(void *p);
|
|||
#define gcBYTES_TO_WORDS(x) ((x + (1 << gcLOG_WORD_SIZE) - 1) >> gcLOG_WORD_SIZE)
|
||||
#define gcWORDS_TO_BYTES(x) (x << gcLOG_WORD_SIZE)
|
||||
|
||||
#define GC_NO_SIZE_NEEDED_FROM_PROCS 1
|
||||
|
||||
#define GC_INTERIORABLES_NEVER_MOVE 1
|
||||
|
||||
#endif /* __mzscheme_gc_2__ */
|
||||
|
|
|
@ -80,11 +80,10 @@ enum {
|
|||
PAGE_TAGGED = 0,
|
||||
PAGE_ATOMIC = 1,
|
||||
PAGE_ARRAY = 2,
|
||||
PAGE_TARRAY = 3,
|
||||
PAGE_PAIR = 4,
|
||||
PAGE_BIG = 5,
|
||||
PAGE_PAIR = 3,
|
||||
PAGE_BIG = 4,
|
||||
/* the number of page types: */
|
||||
PAGE_TYPES = 6
|
||||
PAGE_TYPES = 5
|
||||
};
|
||||
|
||||
enum {
|
||||
|
@ -128,7 +127,6 @@ static const char *type_name[PAGE_TYPES] = {
|
|||
"tagged",
|
||||
"atomic",
|
||||
"array",
|
||||
"tagged array",
|
||||
"pair",
|
||||
"big"
|
||||
};
|
||||
|
@ -699,9 +697,6 @@ static void dump_page_map(NewGC *gc, const char *when)
|
|||
case PAGE_ARRAY:
|
||||
kind = 'r';
|
||||
break;
|
||||
case PAGE_TARRAY:
|
||||
kind = 'y';
|
||||
break;
|
||||
case PAGE_PAIR:
|
||||
kind = 'p';
|
||||
break;
|
||||
|
@ -1590,7 +1585,6 @@ void *GC_malloc_pair(void *car, void *cdr)
|
|||
/* the allocation mechanism we present to the outside world */
|
||||
void *GC_malloc(size_t s) { return allocate(s, PAGE_ARRAY); }
|
||||
void *GC_malloc_one_tagged(size_t s) { return allocate(s, PAGE_TAGGED); }
|
||||
void *GC_malloc_array_tagged(size_t s) { return allocate(s, PAGE_TARRAY); }
|
||||
void *GC_malloc_atomic(size_t s) { return allocate(s, PAGE_ATOMIC); }
|
||||
void *GC_malloc_atomic_uncollectable(size_t s) { return ofm_malloc_zero(s); }
|
||||
void *GC_malloc_allow_interior(size_t s) { return allocate_medium(s, PAGE_ARRAY); }
|
||||
|
@ -3748,17 +3742,6 @@ static inline void propagate_marks_worker(NewGC *gc, void *pp)
|
|||
{
|
||||
while(start < end) gcMARK2(*start++, gc); break;
|
||||
}
|
||||
case PAGE_TARRAY:
|
||||
{
|
||||
const unsigned short tag = *(unsigned short *)start;
|
||||
ASSERT_TAG(tag);
|
||||
end -= INSET_WORDS;
|
||||
while(start < end) {
|
||||
GC_ASSERT(gc->mark_table[tag]);
|
||||
start += gc->mark_table[tag](start, gc);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case PAGE_PAIR:
|
||||
{
|
||||
Scheme_Object *p = (Scheme_Object *)start;
|
||||
|
@ -3897,7 +3880,6 @@ static void *trace_pointer_start(mpage *page, void *p) {
|
|||
}
|
||||
# define TRACE_PAGE_TAGGED PAGE_TAGGED
|
||||
# define TRACE_PAGE_ARRAY PAGE_ARRAY
|
||||
# define TRACE_PAGE_TAGGED_ARRAY PAGE_TARRAY
|
||||
# define TRACE_PAGE_ATOMIC PAGE_ATOMIC
|
||||
# define TRACE_PAGE_PAIR PAGE_PAIR
|
||||
# define TRACE_PAGE_MALLOCFREE PAGE_TYPES
|
||||
|
@ -3910,7 +3892,6 @@ const char *trace_source_kind(int kind)
|
|||
case PAGE_TAGGED: return "_TAGGED";
|
||||
case PAGE_ATOMIC: return "_ATOMIC";
|
||||
case PAGE_ARRAY: return "_ARRAY";
|
||||
case PAGE_TARRAY: return "_TARRAY";
|
||||
case PAGE_PAIR: return "_PAIR";
|
||||
case PAGE_BIG: return "_BIG";
|
||||
case BT_STACK: return "STACK";
|
||||
|
@ -4460,18 +4441,6 @@ static int repair_mixed_page(NewGC *gc, mpage *page, void **end)
|
|||
case PAGE_ATOMIC:
|
||||
start += info->size;
|
||||
break;
|
||||
case PAGE_TARRAY:
|
||||
{
|
||||
void **tempstart, **tempend = PPTR(info) + (info->size - INSET_WORDS);
|
||||
unsigned short tag;
|
||||
tempstart = OBJHEAD_TO_OBJPTR(start);
|
||||
tag = *(unsigned short*)tempstart;
|
||||
ASSERT_TAG(tag);
|
||||
while (tempstart < tempend)
|
||||
tempstart += fixup_table[tag](tempstart, gc);
|
||||
start += info->size;
|
||||
}
|
||||
break;
|
||||
case PAGE_PAIR:
|
||||
{
|
||||
Scheme_Object *p = (Scheme_Object *)OBJHEAD_TO_OBJPTR(start);
|
||||
|
@ -4625,14 +4594,6 @@ static void repair_heap(NewGC *gc)
|
|||
gcFIXUP2(SCHEME_CDR(p), gc);
|
||||
}
|
||||
break;
|
||||
case PAGE_TARRAY:
|
||||
{
|
||||
unsigned short tag = *(unsigned short *)start;
|
||||
ASSERT_TAG(tag);
|
||||
end -= INSET_WORDS;
|
||||
while(start < end) start += fixup_table[tag](start, gc);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
memory_in_use += page->size;
|
||||
|
@ -4683,26 +4644,6 @@ static void repair_heap(NewGC *gc)
|
|||
}
|
||||
}
|
||||
break;
|
||||
case PAGE_TARRAY:
|
||||
while(start < end) {
|
||||
objhead *info = (objhead *)start;
|
||||
size_t size = info->size;
|
||||
if(info->mark) {
|
||||
void **tempend = PPTR(info) + (info->size - INSET_WORDS);
|
||||
unsigned short tag;
|
||||
start = OBJHEAD_TO_OBJPTR(start);
|
||||
tag = *(unsigned short*)start;
|
||||
ASSERT_TAG(tag);
|
||||
while(start < tempend)
|
||||
start += fixup_table[tag](start, gc);
|
||||
info->mark = 0;
|
||||
start = PPTR(info) + size;
|
||||
} else {
|
||||
info->dead = 1;
|
||||
start += size;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case PAGE_PAIR:
|
||||
while(start < end) {
|
||||
objhead *info = (objhead *)start;
|
||||
|
|
|
@ -204,7 +204,6 @@ EXPORTS
|
|||
GC_malloc_one_tagged
|
||||
GC_malloc_atomic_uncollectable
|
||||
scheme_malloc_uncollectable
|
||||
GC_malloc_array_tagged
|
||||
GC_malloc_allow_interior
|
||||
GC_malloc_atomic_allow_interior
|
||||
GC_malloc_tagged_allow_interior
|
||||
|
|
|
@ -211,7 +211,6 @@ GC_malloc_atomic
|
|||
GC_malloc_one_tagged
|
||||
GC_malloc_atomic_uncollectable
|
||||
scheme_malloc_uncollectable
|
||||
GC_malloc_array_tagged
|
||||
GC_malloc_allow_interior
|
||||
GC_malloc_atomic_allow_interior
|
||||
GC_malloc_tagged_allow_interior
|
||||
|
|
|
@ -1221,9 +1221,6 @@ typedef struct Scheme_Thread {
|
|||
short suspend_break;
|
||||
short external_break;
|
||||
|
||||
Scheme_Simple_Object *list_stack;
|
||||
int list_stack_pos;
|
||||
|
||||
/* Racket client can use: */
|
||||
void (*on_kill)(struct Scheme_Thread *p);
|
||||
void *kill_data;
|
||||
|
|
|
@ -98,15 +98,9 @@ void scheme_init_compile_recs(Scheme_Compile_Info *src, int drec,
|
|||
int i;
|
||||
|
||||
for (i = 0; i < n; i++) {
|
||||
#ifdef MZTAG_REQUIRED
|
||||
dest[i].type = scheme_rt_compile_info;
|
||||
#endif
|
||||
dest[i].comp = 1;
|
||||
dest[i].dont_mark_local_use = src[drec].dont_mark_local_use;
|
||||
dest[i].resolve_module_ids = src[drec].resolve_module_ids;
|
||||
dest[i].value_name = scheme_false;
|
||||
/* should be always NULL */
|
||||
dest[i].observer = src[drec].observer;
|
||||
dest[i].pre_unwrapped = 0;
|
||||
dest[i].testing_constantness = 0;
|
||||
dest[i].env_already = 0;
|
||||
|
@ -120,13 +114,8 @@ void scheme_init_expand_recs(Scheme_Expand_Info *src, int drec,
|
|||
int i;
|
||||
|
||||
for (i = 0; i < n; i++) {
|
||||
#ifdef MZTAG_REQUIRED
|
||||
dest[i].type = scheme_rt_compile_info;
|
||||
#endif
|
||||
dest[i].comp = 0;
|
||||
dest[i].depth = src[drec].depth;
|
||||
dest[i].value_name = scheme_false;
|
||||
dest[i].observer = src[drec].observer;
|
||||
dest[i].pre_unwrapped = 0;
|
||||
dest[i].substitute_bindings = src[drec].substitute_bindings;
|
||||
dest[i].testing_constantness = 0;
|
||||
|
@ -144,15 +133,10 @@ void scheme_merge_compile_recs(Scheme_Compile_Info *src, int drec,
|
|||
void scheme_init_lambda_rec(Scheme_Compile_Info *src, int drec,
|
||||
Scheme_Compile_Info *lam, int dlrec)
|
||||
{
|
||||
#ifdef MZTAG_REQUIRED
|
||||
lam[dlrec].type = scheme_rt_compile_info;
|
||||
#endif
|
||||
lam[dlrec].comp = 1;
|
||||
lam[dlrec].dont_mark_local_use = src[drec].dont_mark_local_use;
|
||||
lam[dlrec].resolve_module_ids = src[drec].resolve_module_ids;
|
||||
lam[dlrec].substitute_bindings = src[dlrec].substitute_bindings;
|
||||
lam[dlrec].value_name = scheme_false;
|
||||
lam[dlrec].observer = src[drec].observer;
|
||||
lam[dlrec].pre_unwrapped = 0;
|
||||
lam[dlrec].testing_constantness = 0;
|
||||
lam[dlrec].env_already = 0;
|
||||
|
@ -166,7 +150,6 @@ void scheme_merge_lambda_rec(Scheme_Compile_Info *src, int drec,
|
|||
|
||||
void scheme_compile_rec_done_local(Scheme_Compile_Info *rec, int drec)
|
||||
{
|
||||
rec[drec].value_name = scheme_false;
|
||||
}
|
||||
|
||||
/**********************************************************************/
|
||||
|
@ -285,6 +268,7 @@ Scheme_Comp_Env *scheme_new_compilation_frame(int num_bindings, int flags, Schem
|
|||
frame->insp = base->insp;
|
||||
frame->prefix = base->prefix;
|
||||
frame->in_modidx = base->in_modidx;
|
||||
frame->observer = base->observer;
|
||||
|
||||
if (base->next)
|
||||
frame->skip_depth = base->skip_depth + 1;
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -4150,8 +4150,6 @@ static void *compile_k(void)
|
|||
rec.dont_mark_local_use = 0;
|
||||
rec.resolve_module_ids = !writeable && !genv->module;
|
||||
rec.substitute_bindings = 1;
|
||||
rec.value_name = scheme_false;
|
||||
rec.observer = NULL;
|
||||
rec.pre_unwrapped = 0;
|
||||
rec.env_already = 0;
|
||||
rec.comp_flags = comp_flags;
|
||||
|
@ -4652,6 +4650,8 @@ static void *expand_k(void)
|
|||
observer = scheme_get_expand_observe();
|
||||
SCHEME_EXPAND_OBSERVE_START_EXPAND(observer);
|
||||
|
||||
env->observer = observer;
|
||||
|
||||
comp_flags = get_comp_flags(NULL);
|
||||
|
||||
if (as_local < 0) {
|
||||
|
@ -4668,8 +4668,6 @@ static void *expand_k(void)
|
|||
while (1) {
|
||||
erec1.comp = 0;
|
||||
erec1.depth = ((depth == -3) ? -2 : depth);
|
||||
erec1.value_name = scheme_false;
|
||||
erec1.observer = observer;
|
||||
erec1.pre_unwrapped = 0;
|
||||
erec1.env_already = 0;
|
||||
erec1.comp_flags = comp_flags;
|
||||
|
@ -4709,13 +4707,13 @@ static void *expand_k(void)
|
|||
obj = scheme_add_lifts_as_let(obj, l, env, scheme_false, 0);
|
||||
else
|
||||
obj = add_lifts_as_begin(obj, l, env);
|
||||
SCHEME_EXPAND_OBSERVE_LIFT_LOOP(erec1.observer,obj);
|
||||
SCHEME_EXPAND_OBSERVE_LIFT_LOOP(env->observer, obj);
|
||||
if ((depth >= 0) || as_local)
|
||||
break;
|
||||
} else {
|
||||
if (as_local > 0) {
|
||||
obj = add_lifts_as_begin(obj, scheme_null, env);
|
||||
SCHEME_EXPAND_OBSERVE_LIFT_LOOP(erec1.observer,obj);
|
||||
SCHEME_EXPAND_OBSERVE_LIFT_LOOP(env->observer,obj);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -5301,6 +5299,8 @@ do_local_expand(const char *name, int for_stx, int catch_lifts, int for_expr, in
|
|||
}
|
||||
}
|
||||
|
||||
env->observer = observer;
|
||||
|
||||
if (local_scope) {
|
||||
/* Since we have an expression from local context,
|
||||
we need to remove the temporary scope... */
|
||||
|
@ -5336,15 +5336,16 @@ do_local_expand(const char *name, int for_stx, int catch_lifts, int for_expr, in
|
|||
}
|
||||
|
||||
memset(drec, 0, sizeof(drec));
|
||||
drec[0].value_name = scheme_false; /* or scheme_current_thread->current_local_name ? */
|
||||
drec[0].depth = -2;
|
||||
drec[0].observer = observer;
|
||||
{
|
||||
int comp_flags;
|
||||
comp_flags = get_comp_flags(NULL);
|
||||
drec[0].comp_flags = comp_flags;
|
||||
}
|
||||
|
||||
if (!(env->flags & (SCHEME_TOPLEVEL_FRAME | SCHEME_MODULE_FRAME | SCHEME_MODULE_BEGIN_FRAME)))
|
||||
env->value_name = scheme_current_thread->current_local_name;
|
||||
|
||||
xl = scheme_check_immediate_macro(l, env, drec, 0, &gval, 1);
|
||||
|
||||
if (SAME_OBJ(xl, l) && !for_expr) {
|
||||
|
@ -5830,6 +5831,7 @@ local_eval(int argc, Scheme_Object **argv)
|
|||
|
||||
stx_env = scheme_new_compilation_frame(0, SCHEME_FOR_INTDEF | SCHEME_USE_SCOPES_TO_NEXT, rib, stx_env);
|
||||
scheme_add_local_syntax(cnt, stx_env);
|
||||
env->observer = observer;
|
||||
|
||||
/* Scope names */
|
||||
if (scheme_current_thread->current_local_scope)
|
||||
|
@ -5852,8 +5854,6 @@ local_eval(int argc, Scheme_Object **argv)
|
|||
Scheme_Compile_Expand_Info rec;
|
||||
rec.comp = 0;
|
||||
rec.depth = -1;
|
||||
rec.value_name = scheme_false;
|
||||
rec.observer = observer;
|
||||
rec.pre_unwrapped = 0;
|
||||
rec.env_already = 0;
|
||||
rec.substitute_bindings = 1;
|
||||
|
@ -5872,7 +5872,8 @@ local_eval(int argc, Scheme_Object **argv)
|
|||
scheme_make_pair(rib, scheme_env_phase(stx_env->genv)));
|
||||
rn_names = scheme_named_map_1(NULL, revert_expr_scopes, rn_names, (Scheme_Object *)init_env);
|
||||
scheme_bind_syntaxes("local syntax definition", rn_names, expr,
|
||||
stx_env->genv->exp_env, stx_env->insp, &rec, 0,
|
||||
stx_env->genv->exp_env, stx_env->insp,
|
||||
&rec, 0, stx_env->observer,
|
||||
stx_env, stx_env,
|
||||
&pos, rib, 1);
|
||||
}
|
||||
|
@ -6097,7 +6098,7 @@ static void mark_pruned_prefixes(struct NewGC *gc) XFORM_SKIP_PROC
|
|||
GC_set_backpointer_object(pf->backpointer);
|
||||
#endif
|
||||
GC_mark_no_recur(gc, 1);
|
||||
gcMARK(pf);
|
||||
gcMARK2(pf, gc);
|
||||
pf = (Scheme_Prefix *)GC_resolve2(pf, gc);
|
||||
GC_retract_only_mark_stack_entry(pf, gc);
|
||||
GC_mark_no_recur(gc, 0);
|
||||
|
@ -6132,7 +6133,6 @@ START_XFORM_SKIP;
|
|||
|
||||
static void register_traversers(void)
|
||||
{
|
||||
GC_REG_TRAV(scheme_rt_compile_info, mark_comp_info);
|
||||
GC_REG_TRAV(scheme_rt_saved_stack, mark_saved_stack);
|
||||
}
|
||||
|
||||
|
|
|
@ -1953,7 +1953,7 @@ scheme_apply_macro(Scheme_Object *name, Scheme_Env *menv,
|
|||
code = scheme_stx_taint_disarm(code, NULL);
|
||||
|
||||
pre_code = code;
|
||||
SCHEME_EXPAND_OBSERVE_MACRO_PRE_X(rec[drec].observer, code);
|
||||
SCHEME_EXPAND_OBSERVE_MACRO_PRE_X(env->observer, code);
|
||||
|
||||
{
|
||||
Scheme_Dynamic_State dyn_state;
|
||||
|
@ -1976,7 +1976,7 @@ scheme_apply_macro(Scheme_Object *name, Scheme_Env *menv,
|
|||
scheme_pop_continuation_frame(&cframe);
|
||||
}
|
||||
|
||||
SCHEME_EXPAND_OBSERVE_MACRO_POST_X(rec[drec].observer, code, pre_code);
|
||||
SCHEME_EXPAND_OBSERVE_MACRO_POST_X(env->observer, code, pre_code);
|
||||
|
||||
if (!SCHEME_STXP(code)) {
|
||||
scheme_raise_exn(MZEXN_FAIL_CONTRACT,
|
||||
|
|
|
@ -31,19 +31,23 @@
|
|||
[(regexp-match re:close l)
|
||||
(error 'mkmark.rkt "unexpected close")]
|
||||
[else (cons l (loop))])))))]
|
||||
[print-lines (lambda (l [skip-rx #f])
|
||||
[print-lines (lambda (l [skip-rx #f] [skip-alt-bracket #f])
|
||||
(let loop ([l l] [skip? #f])
|
||||
(cond
|
||||
[(null? l) (void)]
|
||||
[(and skip-rx (regexp-match? skip-rx (car l)))
|
||||
(when skip-alt-bracket
|
||||
(if skip?
|
||||
(printf "#endif\n")
|
||||
(printf "#ifdef ~a\n" skip-alt-bracket)))
|
||||
(loop (cdr l) (not skip?))]
|
||||
[skip?
|
||||
[(and skip? (not skip-alt-bracket))
|
||||
(loop (cdr l) #t)]
|
||||
[(regexp-match? #rx"(START|END)_[A-Z_]+_ONLY;" (car l))
|
||||
(loop (cdr l) skip?)]
|
||||
[else
|
||||
(printf "~a\n" (car l))
|
||||
(loop (cdr l) #f)])))])
|
||||
(loop (cdr l) skip?)])))])
|
||||
(let ([prefix (read-lines re:mark)]
|
||||
[mark (read-lines re:size-or-more)]
|
||||
[fixup (if (regexp-match-peek re:fixup-start (current-input-port))
|
||||
|
@ -52,13 +56,26 @@
|
|||
(read-lines re:size))
|
||||
null)]
|
||||
[size (read-lines re:close)])
|
||||
|
||||
(define (print-size size)
|
||||
(printf "# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS\n")
|
||||
(printf " return 0;\n")
|
||||
(printf "# else\n")
|
||||
(printf " return\n")
|
||||
(print-lines size)
|
||||
(printf "# endif\n"))
|
||||
|
||||
(printf "static int ~a_SIZE(void *p, struct NewGC *gc) {\n" name)
|
||||
(printf "#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS\n")
|
||||
(print-lines prefix)
|
||||
(printf " return\n")
|
||||
(print-lines size)
|
||||
(printf "#else\n")
|
||||
(printf " return 0;\n")
|
||||
(printf "#endif\n")
|
||||
(printf "}\n\n")
|
||||
|
||||
(printf "static int ~a_MARK(void *p, struct NewGC *gc) {\n" name)
|
||||
(printf "#ifndef GC_NO_MARK_PROCEDURE_NEEDED\n")
|
||||
(print-lines prefix)
|
||||
(print-lines (map (lambda (s)
|
||||
(regexp-replace*
|
||||
|
@ -70,11 +87,12 @@
|
|||
""))
|
||||
mark)
|
||||
#rx"FIXUP_ONLY")
|
||||
(printf " return\n")
|
||||
(print-lines size)
|
||||
(print-size size)
|
||||
(printf "#endif\n")
|
||||
(printf "}\n\n")
|
||||
|
||||
(printf "static int ~a_FIXUP(void *p, struct NewGC *gc) {\n" name)
|
||||
(printf "#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED\n")
|
||||
(print-lines prefix)
|
||||
(print-lines (map (lambda (s)
|
||||
(regexp-replace*
|
||||
|
@ -88,8 +106,8 @@
|
|||
mark
|
||||
fixup))
|
||||
#rx"MARK_ONLY")
|
||||
(printf " return\n")
|
||||
(print-lines size)
|
||||
(print-size size)
|
||||
(printf "#endif\n")
|
||||
(printf "}\n\n")
|
||||
|
||||
(printf "#define ~a_IS_ATOMIC ~a\n"
|
||||
|
|
|
@ -7041,7 +7041,7 @@ static Scheme_Object *do_module(Scheme_Object *form, Scheme_Comp_Env *env,
|
|||
LOG_EXPAND_DECLS;
|
||||
|
||||
if (!rec[drec].comp) {
|
||||
SCHEME_EXPAND_OBSERVE_PRIM_MODULE(rec[drec].observer);
|
||||
SCHEME_EXPAND_OBSERVE_PRIM_MODULE(env->observer);
|
||||
if (rec[drec].depth > 0)
|
||||
rec[drec].depth++;
|
||||
}
|
||||
|
@ -7205,7 +7205,7 @@ static Scheme_Object *do_module(Scheme_Object *form, Scheme_Comp_Env *env,
|
|||
m->super_bxs_info = super_bxs_info;
|
||||
}
|
||||
|
||||
SCHEME_EXPAND_OBSERVE_PREPARE_ENV(rec[drec].observer);
|
||||
SCHEME_EXPAND_OBSERVE_PREPARE_ENV(env->observer);
|
||||
|
||||
/* load the module for the initial require */
|
||||
if (iidx) {
|
||||
|
@ -7291,6 +7291,7 @@ static Scheme_Object *do_module(Scheme_Object *form, Scheme_Comp_Env *env,
|
|||
else
|
||||
benv = scheme_new_expand_env(menv, env->insp, frame_scopes,
|
||||
SCHEME_MODULE_BEGIN_FRAME | SCHEME_KEEP_SCOPES_FRAME);
|
||||
benv->observer = env->observer;
|
||||
}
|
||||
|
||||
/* If fm isn't a single expression, it certainly needs a
|
||||
|
@ -7308,7 +7309,7 @@ static Scheme_Object *do_module(Scheme_Object *form, Scheme_Comp_Env *env,
|
|||
fm = scheme_datum_to_syntax(fm, form, mb_ctx, 0, 2);
|
||||
|
||||
if (check_mb) {
|
||||
SCHEME_EXPAND_OBSERVE_TAG(rec[drec].observer, fm);
|
||||
SCHEME_EXPAND_OBSERVE_TAG(env->observer, fm);
|
||||
}
|
||||
|
||||
fm = scheme_stx_property(fm, module_name_symbol, scheme_resolved_module_path_value(rmp));
|
||||
|
@ -7321,7 +7322,7 @@ static Scheme_Object *do_module(Scheme_Object *form, Scheme_Comp_Env *env,
|
|||
|
||||
fm = scheme_stx_add_module_frame_context(fm, rn_set);
|
||||
|
||||
SCHEME_EXPAND_OBSERVE_RENAME_ONE(rec[drec].observer, fm);
|
||||
SCHEME_EXPAND_OBSERVE_RENAME_ONE(env->observer, fm);
|
||||
|
||||
if (!check_mb) {
|
||||
fm = scheme_check_immediate_macro(fm, benv, rec, drec, &mbval, 1);
|
||||
|
@ -7334,7 +7335,7 @@ static Scheme_Object *do_module(Scheme_Object *form, Scheme_Comp_Env *env,
|
|||
fm = scheme_datum_to_syntax(fm, form, mb_ctx, 0, 2);
|
||||
fm = scheme_stx_property(fm, module_name_symbol, scheme_resolved_module_path_value(rmp));
|
||||
|
||||
SCHEME_EXPAND_OBSERVE_TAG(rec[drec].observer, fm);
|
||||
SCHEME_EXPAND_OBSERVE_TAG(env->observer, fm);
|
||||
|
||||
check_mb = 1;
|
||||
}
|
||||
|
@ -7451,7 +7452,7 @@ static Scheme_Object *do_module(Scheme_Object *form, Scheme_Comp_Env *env,
|
|||
|
||||
LOG_END_EXPAND(m);
|
||||
|
||||
SCHEME_EXPAND_OBSERVE_RENAME_ONE(rec[drec].observer, fm);
|
||||
SCHEME_EXPAND_OBSERVE_RENAME_ONE(env->observer, fm);
|
||||
return fm;
|
||||
}
|
||||
|
||||
|
@ -8178,7 +8179,7 @@ static Scheme_Object *do_module_begin(Scheme_Object *orig_form, Scheme_Comp_Env
|
|||
scoped identifiers for definitions. */
|
||||
form = introduce_to_module_context(form, rn_set);
|
||||
|
||||
observer = rec[drec].observer;
|
||||
observer = env->observer;
|
||||
SCHEME_EXPAND_OBSERVE_RENAME_ONE(observer, form);
|
||||
|
||||
_num_phases = MALLOC_ONE_ATOMIC(int);
|
||||
|
@ -8226,8 +8227,6 @@ static Scheme_Object *do_module_begin(Scheme_Object *orig_form, Scheme_Comp_Env
|
|||
crec.dont_mark_local_use = 0;
|
||||
crec.resolve_module_ids = 0;
|
||||
crec.substitute_bindings = 1;
|
||||
crec.value_name = scheme_false;
|
||||
crec.observer = NULL;
|
||||
crec.pre_unwrapped = 0;
|
||||
crec.env_already = 0;
|
||||
crec.comp_flags = rec[drec].comp_flags;
|
||||
|
@ -8692,20 +8691,14 @@ static Scheme_Object *do_module_begin_at_phase(Scheme_Object *form, Scheme_Comp_
|
|||
void **args;
|
||||
|
||||
if (rec) {
|
||||
recx = MALLOC_ONE_RT(Scheme_Compile_Expand_Info);
|
||||
recx = MALLOC_ONE_ATOMIC(Scheme_Compile_Expand_Info);
|
||||
memcpy(recx, rec + drec, sizeof(Scheme_Compile_Expand_Info));
|
||||
#ifdef MZTAG_REQUIRED
|
||||
recx->type = scheme_rt_compile_info;
|
||||
#endif
|
||||
} else
|
||||
recx = NULL;
|
||||
|
||||
if (erec) {
|
||||
erecx = MALLOC_ONE_RT(Scheme_Compile_Expand_Info);
|
||||
erecx = MALLOC_ONE_ATOMIC(Scheme_Compile_Expand_Info);
|
||||
memcpy(erecx, erec + derec, sizeof(Scheme_Compile_Expand_Info));
|
||||
#ifdef MZTAG_REQUIRED
|
||||
erecx->type = scheme_rt_compile_info;
|
||||
#endif
|
||||
} else
|
||||
erecx = NULL;
|
||||
|
||||
|
@ -8813,11 +8806,8 @@ static Scheme_Object *do_module_begin_at_phase(Scheme_Object *form, Scheme_Comp_
|
|||
/* For syntax-local-context, etc., in a d-s RHS: */
|
||||
rhs_env = scheme_new_comp_env(env->genv, env->insp, NULL, SCHEME_TOPLEVEL_FRAME);
|
||||
|
||||
if (erec) {
|
||||
observer = erec[derec].observer;
|
||||
} else {
|
||||
observer = NULL;
|
||||
}
|
||||
observer = env->observer;
|
||||
rhs_env->observer = observer;
|
||||
|
||||
maybe_has_lifts = 0;
|
||||
lift_ctx = scheme_generate_lifts_key();
|
||||
|
@ -8864,8 +8854,6 @@ static Scheme_Object *do_module_begin_at_phase(Scheme_Object *form, Scheme_Comp_
|
|||
Scheme_Expand_Info erec1;
|
||||
erec1.comp = 0;
|
||||
erec1.depth = -1;
|
||||
erec1.value_name = scheme_false;
|
||||
erec1.observer = observer;
|
||||
erec1.pre_unwrapped = 0;
|
||||
erec1.substitute_bindings = 1;
|
||||
erec1.env_already = 0;
|
||||
|
@ -9107,8 +9095,6 @@ static Scheme_Object *do_module_begin_at_phase(Scheme_Object *form, Scheme_Comp_
|
|||
mrec.dont_mark_local_use = 0;
|
||||
mrec.resolve_module_ids = 0;
|
||||
mrec.substitute_bindings = 1;
|
||||
mrec.value_name = NULL;
|
||||
mrec.observer = NULL;
|
||||
mrec.pre_unwrapped = 0;
|
||||
mrec.env_already = 0;
|
||||
mrec.comp_flags = rec[drec].comp_flags;
|
||||
|
@ -9116,8 +9102,6 @@ static Scheme_Object *do_module_begin_at_phase(Scheme_Object *form, Scheme_Comp_
|
|||
if (erec) {
|
||||
erec1.comp = 0;
|
||||
erec1.depth = -1;
|
||||
erec1.value_name = boundname;
|
||||
erec1.observer = observer;
|
||||
erec1.pre_unwrapped = 0;
|
||||
erec1.substitute_bindings = 1;
|
||||
erec1.env_already = 0;
|
||||
|
@ -9151,9 +9135,14 @@ static Scheme_Object *do_module_begin_at_phase(Scheme_Object *form, Scheme_Comp_
|
|||
} else {
|
||||
if (erec) {
|
||||
SCHEME_EXPAND_OBSERVE_PHASE_UP(observer);
|
||||
eenv->value_name = boundname;
|
||||
eenv->observer = xenv->observer;
|
||||
code = scheme_expand_expr_lift_to_let(code, eenv, &erec1, 0);
|
||||
}
|
||||
eenv->value_name = boundname;
|
||||
eenv->observer = NULL;
|
||||
m = scheme_compile_expr_lift_to_let(code, eenv, &mrec, 0);
|
||||
eenv->value_name = NULL;
|
||||
}
|
||||
|
||||
if (!for_stx) {
|
||||
|
@ -9370,6 +9359,7 @@ static Scheme_Object *do_module_begin_at_phase(Scheme_Object *form, Scheme_Comp_
|
|||
frame_scopes = scheme_module_context_frame_scopes(rn_set, xenv->scopes);
|
||||
cenv = scheme_new_comp_env(env->genv, env->insp, frame_scopes,
|
||||
SCHEME_TOPLEVEL_FRAME | SCHEME_KEEP_SCOPES_FRAME);
|
||||
cenv->observer = env->observer;
|
||||
}
|
||||
|
||||
lift_data = scheme_make_vector(3, NULL);
|
||||
|
@ -9435,7 +9425,6 @@ static Scheme_Object *do_module_begin_at_phase(Scheme_Object *form, Scheme_Comp_
|
|||
if (erec) {
|
||||
Scheme_Expand_Info erec1;
|
||||
scheme_init_expand_recs(erec, derec, &erec1, 1);
|
||||
erec1.value_name = scheme_false;
|
||||
e = scheme_expand_expr(e, nenv, &erec1, 0);
|
||||
expanded_l = scheme_make_pair(e, expanded_l);
|
||||
}
|
||||
|
@ -9444,7 +9433,9 @@ static Scheme_Object *do_module_begin_at_phase(Scheme_Object *form, Scheme_Comp_
|
|||
Scheme_Compile_Info crec1;
|
||||
scheme_init_compile_recs(rec, drec, &crec1, 1);
|
||||
crec1.resolve_module_ids = 0;
|
||||
nenv->observer = NULL;
|
||||
e = scheme_compile_expr(e, nenv, &crec1, 0);
|
||||
nenv->observer = env->observer;
|
||||
}
|
||||
|
||||
lifted_reqs = scheme_frame_get_require_lifts(cenv);
|
||||
|
@ -9657,7 +9648,7 @@ static Scheme_Object *expand_all_provides(Scheme_Object *form,
|
|||
Scheme_Object *e, *ex, *fst;
|
||||
Scheme_Comp_Env *pcenv;
|
||||
|
||||
observer = rec[drec].observer;
|
||||
observer = cenv->observer;
|
||||
|
||||
saved_provides = scheme_reverse(bxs->saved_provides);
|
||||
while (!SCHEME_NULLP(saved_provides)) {
|
||||
|
@ -9684,6 +9675,7 @@ static Scheme_Object *expand_all_provides(Scheme_Object *form,
|
|||
pcenv = scheme_new_comp_env(penv, penv->access_insp, NULL, SCHEME_TOPLEVEL_FRAME);
|
||||
else
|
||||
pcenv = scheme_new_expand_env(penv, penv->access_insp, NULL, SCHEME_TOPLEVEL_FRAME);
|
||||
pcenv->observer = cenv->observer;
|
||||
} else {
|
||||
pcenv = cenv;
|
||||
}
|
||||
|
@ -9728,10 +9720,10 @@ static Scheme_Object *expand_submodules(Scheme_Compile_Expand_Info *rec, int dre
|
|||
|
||||
while (!SCHEME_NULLP(l)) {
|
||||
mod = SCHEME_CAR(l);
|
||||
SCHEME_EXPAND_OBSERVE_ENTER_PRIM(rec[drec].observer,SCHEME_CAR(mod));
|
||||
SCHEME_EXPAND_OBSERVE_ENTER_PRIM(env->observer, SCHEME_CAR(mod));
|
||||
mod = do_module(SCHEME_CAR(mod), env, rec, drec, ancestry, env->genv->module->submodule_path, post,
|
||||
bxs, SCHEME_CDR(mod));
|
||||
SCHEME_EXPAND_OBSERVE_EXIT_PRIM(rec[drec].observer,mod);
|
||||
SCHEME_EXPAND_OBSERVE_EXIT_PRIM(env->observer,mod);
|
||||
|
||||
mods = scheme_make_pair(mod, mods);
|
||||
|
||||
|
@ -9951,7 +9943,7 @@ module_begin_syntax(Scheme_Object *form, Scheme_Comp_Env *env, Scheme_Compile_In
|
|||
static Scheme_Object *
|
||||
module_begin_expand(Scheme_Object *form, Scheme_Comp_Env *env, Scheme_Expand_Info *erec, int drec)
|
||||
{
|
||||
SCHEME_EXPAND_OBSERVE_PRIM_MODULE_BEGIN(erec[drec].observer);
|
||||
SCHEME_EXPAND_OBSERVE_PRIM_MODULE_BEGIN(env->observer);
|
||||
return do_module_begin(form, env, erec, drec);
|
||||
}
|
||||
|
||||
|
@ -10846,7 +10838,6 @@ static Scheme_Object *expand_provide(Scheme_Object *e, int at_phase,
|
|||
stop, xenv, 0);
|
||||
|
||||
scheme_init_expand_recs(rec, drec, &erec1, 1);
|
||||
erec1.value_name = scheme_false;
|
||||
erec1.depth = -1;
|
||||
|
||||
p = scheme_current_thread;
|
||||
|
@ -12597,7 +12588,7 @@ require_syntax(Scheme_Object *form, Scheme_Comp_Env *env, Scheme_Compile_Info *r
|
|||
static Scheme_Object *
|
||||
require_expand(Scheme_Object *form, Scheme_Comp_Env *env, Scheme_Expand_Info *erec, int drec)
|
||||
{
|
||||
SCHEME_EXPAND_OBSERVE_PRIM_REQUIRE(erec[drec].observer);
|
||||
SCHEME_EXPAND_OBSERVE_PRIM_REQUIRE(env->observer);
|
||||
return do_require(form, env, erec, drec);
|
||||
}
|
||||
|
||||
|
@ -12631,7 +12622,7 @@ provide_syntax(Scheme_Object *form, Scheme_Comp_Env *env, Scheme_Compile_Info *r
|
|||
static Scheme_Object *
|
||||
provide_expand(Scheme_Object *form, Scheme_Comp_Env *env, Scheme_Expand_Info *erec, int drec)
|
||||
{
|
||||
SCHEME_EXPAND_OBSERVE_PRIM_PROVIDE(erec[drec].observer);
|
||||
SCHEME_EXPAND_OBSERVE_PRIM_PROVIDE(env->observer);
|
||||
scheme_wrong_syntax(NULL, NULL, form, "not in module body");
|
||||
return NULL;
|
||||
}
|
||||
|
@ -12646,7 +12637,7 @@ declare_syntax(Scheme_Object *form, Scheme_Comp_Env *env, Scheme_Compile_Info *r
|
|||
static Scheme_Object *
|
||||
declare_expand(Scheme_Object *form, Scheme_Comp_Env *env, Scheme_Expand_Info *erec, int drec)
|
||||
{
|
||||
SCHEME_EXPAND_OBSERVE_PRIM_PROVIDE(erec[drec].observer);
|
||||
SCHEME_EXPAND_OBSERVE_PRIM_PROVIDE(env->observer);
|
||||
scheme_wrong_syntax(NULL, NULL, form, "not in module body");
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
@ -1,11 +1,15 @@
|
|||
/* >>>> Generated by mkmark.rkt from mzmarksrc.c <<<< */
|
||||
|
||||
static int mark_comp_env_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Comp_Env));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_comp_env_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Scheme_Comp_Env *e = (Scheme_Comp_Env *)p;
|
||||
|
||||
gcMARK2(e->genv, gc);
|
||||
|
@ -13,6 +17,8 @@ static int mark_comp_env_MARK(void *p, struct NewGC *gc) {
|
|||
gcMARK2(e->prefix, gc);
|
||||
gcMARK2(e->next, gc);
|
||||
gcMARK2(e->scopes, gc);
|
||||
gcMARK2(e->value_name, gc);
|
||||
gcMARK2(e->observer, gc);
|
||||
gcMARK2(e->binders, gc);
|
||||
gcMARK2(e->bindings, gc);
|
||||
gcMARK2(e->vals, gc);
|
||||
|
@ -30,11 +36,17 @@ static int mark_comp_env_MARK(void *p, struct NewGC *gc) {
|
|||
|
||||
gcMARK2(e->expand_result_adjust_arg, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Comp_Env));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_comp_env_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Scheme_Comp_Env *e = (Scheme_Comp_Env *)p;
|
||||
|
||||
gcFIXUP2(e->genv, gc);
|
||||
|
@ -42,6 +54,8 @@ static int mark_comp_env_FIXUP(void *p, struct NewGC *gc) {
|
|||
gcFIXUP2(e->prefix, gc);
|
||||
gcFIXUP2(e->next, gc);
|
||||
gcFIXUP2(e->scopes, gc);
|
||||
gcFIXUP2(e->value_name, gc);
|
||||
gcFIXUP2(e->observer, gc);
|
||||
gcFIXUP2(e->binders, gc);
|
||||
gcFIXUP2(e->bindings, gc);
|
||||
gcFIXUP2(e->vals, gc);
|
||||
|
@ -59,8 +73,13 @@ static int mark_comp_env_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
gcFIXUP2(e->expand_result_adjust_arg, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Comp_Env));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_comp_env_IS_ATOMIC 0
|
||||
|
|
|
@ -1,57 +1,43 @@
|
|||
/* >>>> Generated by mkmark.rkt from mzmarksrc.c <<<< */
|
||||
|
||||
static int mark_comp_info_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Compile_Info));
|
||||
}
|
||||
|
||||
static int mark_comp_info_MARK(void *p, struct NewGC *gc) {
|
||||
Scheme_Compile_Info *i = (Scheme_Compile_Info *)p;
|
||||
|
||||
gcMARK2(i->value_name, gc);
|
||||
gcMARK2(i->observer, gc);
|
||||
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Compile_Info));
|
||||
}
|
||||
|
||||
static int mark_comp_info_FIXUP(void *p, struct NewGC *gc) {
|
||||
Scheme_Compile_Info *i = (Scheme_Compile_Info *)p;
|
||||
|
||||
gcFIXUP2(i->value_name, gc);
|
||||
gcFIXUP2(i->observer, gc);
|
||||
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Compile_Info));
|
||||
}
|
||||
|
||||
#define mark_comp_info_IS_ATOMIC 0
|
||||
#define mark_comp_info_IS_CONST_SIZE 1
|
||||
|
||||
|
||||
static int mark_saved_stack_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Saved_Stack));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_saved_stack_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Scheme_Saved_Stack *saved = (Scheme_Saved_Stack *)p;
|
||||
|
||||
gcMARK2(saved->prev, gc);
|
||||
gcMARK2(saved->runstack_start, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Saved_Stack));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_saved_stack_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Scheme_Saved_Stack *saved = (Scheme_Saved_Stack *)p;
|
||||
|
||||
gcFIXUP2(saved->prev, gc);
|
||||
gcFIXUP2(saved->runstack_start, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Saved_Stack));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_saved_stack_IS_ATOMIC 0
|
||||
|
|
|
@ -1,30 +1,45 @@
|
|||
/* >>>> Generated by mkmark.rkt from mzmarksrc.c <<<< */
|
||||
|
||||
static int mark_closure_info_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Closure_Info));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_closure_info_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Closure_Info *i = (Closure_Info *)p;
|
||||
|
||||
gcMARK2(i->local_flags, gc);
|
||||
gcMARK2(i->base_closure_map, gc);
|
||||
gcMARK2(i->local_type_map, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Closure_Info));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_closure_info_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Closure_Info *i = (Closure_Info *)p;
|
||||
|
||||
gcFIXUP2(i->local_flags, gc);
|
||||
gcFIXUP2(i->base_closure_map, gc);
|
||||
gcFIXUP2(i->local_type_map, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Closure_Info));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_closure_info_IS_ATOMIC 0
|
||||
|
@ -32,28 +47,43 @@ static int mark_closure_info_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int mark_dyn_wind_cell_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Dynamic_Wind_List));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_dyn_wind_cell_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Scheme_Dynamic_Wind_List *l = (Scheme_Dynamic_Wind_List *)p;
|
||||
|
||||
gcMARK2(l->dw, gc);
|
||||
gcMARK2(l->next, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Dynamic_Wind_List));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_dyn_wind_cell_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Scheme_Dynamic_Wind_List *l = (Scheme_Dynamic_Wind_List *)p;
|
||||
|
||||
gcFIXUP2(l->dw, gc);
|
||||
gcFIXUP2(l->next, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Dynamic_Wind_List));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_dyn_wind_cell_IS_ATOMIC 0
|
||||
|
@ -61,30 +91,45 @@ static int mark_dyn_wind_cell_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int mark_dyn_wind_info_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Dyn_Wind));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_dyn_wind_info_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Dyn_Wind *d = (Dyn_Wind *)p;
|
||||
|
||||
gcMARK2(d->pre, gc);
|
||||
gcMARK2(d->act, gc);
|
||||
gcMARK2(d->post, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Dyn_Wind));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_dyn_wind_info_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Dyn_Wind *d = (Dyn_Wind *)p;
|
||||
|
||||
gcFIXUP2(d->pre, gc);
|
||||
gcFIXUP2(d->act, gc);
|
||||
gcFIXUP2(d->post, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Dyn_Wind));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_dyn_wind_info_IS_ATOMIC 0
|
||||
|
@ -92,30 +137,45 @@ static int mark_dyn_wind_info_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int mark_cont_mark_chain_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Cont_Mark_Chain));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_cont_mark_chain_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Scheme_Cont_Mark_Chain *c = (Scheme_Cont_Mark_Chain *)p;
|
||||
|
||||
gcMARK2(c->key, gc);
|
||||
gcMARK2(c->val, gc);
|
||||
gcMARK2(c->next, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Cont_Mark_Chain));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_cont_mark_chain_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Scheme_Cont_Mark_Chain *c = (Scheme_Cont_Mark_Chain *)p;
|
||||
|
||||
gcFIXUP2(c->key, gc);
|
||||
gcFIXUP2(c->val, gc);
|
||||
gcFIXUP2(c->next, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Cont_Mark_Chain));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_cont_mark_chain_IS_ATOMIC 0
|
||||
|
@ -125,11 +185,15 @@ static int mark_cont_mark_chain_FIXUP(void *p, struct NewGC *gc) {
|
|||
#ifdef MZ_USE_JIT
|
||||
|
||||
static int mark_lightweight_cont_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Lightweight_Continuation));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_lightweight_cont_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Scheme_Lightweight_Continuation *lw = (Scheme_Lightweight_Continuation *)p;
|
||||
|
||||
gcMARK2(lw->saved_lwc, gc);
|
||||
|
@ -137,11 +201,17 @@ static int mark_lightweight_cont_MARK(void *p, struct NewGC *gc) {
|
|||
gcMARK2(lw->runstack_slice, gc);
|
||||
gcMARK2(lw->cont_mark_stack_slice, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Lightweight_Continuation));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_lightweight_cont_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Scheme_Lightweight_Continuation *lw = (Scheme_Lightweight_Continuation *)p;
|
||||
|
||||
gcFIXUP2(lw->saved_lwc, gc);
|
||||
|
@ -149,8 +219,13 @@ static int mark_lightweight_cont_FIXUP(void *p, struct NewGC *gc) {
|
|||
gcFIXUP2(lw->runstack_slice, gc);
|
||||
gcFIXUP2(lw->cont_mark_stack_slice, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Lightweight_Continuation));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_lightweight_cont_IS_ATOMIC 0
|
||||
|
|
|
@ -3,11 +3,15 @@
|
|||
#ifdef MZ_USE_FUTURES
|
||||
|
||||
static int future_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(future_t));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int future_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
future_t *f = (future_t *)p;
|
||||
gcMARK2(f->orig_lambda, gc);
|
||||
gcMARK2(f->cust, gc);
|
||||
|
@ -37,11 +41,17 @@ static int future_MARK(void *p, struct NewGC *gc) {
|
|||
gcMARK2(f->prev_in_fsema_queue, gc);
|
||||
gcMARK2(f->next_in_fsema_queue, gc);
|
||||
gcMARK2(f->touching, gc);
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(future_t));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int future_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
future_t *f = (future_t *)p;
|
||||
gcFIXUP2(f->orig_lambda, gc);
|
||||
gcFIXUP2(f->cust, gc);
|
||||
|
@ -71,8 +81,13 @@ static int future_FIXUP(void *p, struct NewGC *gc) {
|
|||
gcFIXUP2(f->prev_in_fsema_queue, gc);
|
||||
gcFIXUP2(f->next_in_fsema_queue, gc);
|
||||
gcFIXUP2(f->touching, gc);
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(future_t));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define future_IS_ATOMIC 0
|
||||
|
@ -80,24 +95,39 @@ static int future_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int fsemaphore_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(fsemaphore_t));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int fsemaphore_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
fsemaphore_t *s = (fsemaphore_t*)p;
|
||||
gcMARK2(s->queue_front, gc);
|
||||
gcMARK2(s->queue_end, gc);
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(fsemaphore_t));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int fsemaphore_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
fsemaphore_t *s = (fsemaphore_t*)p;
|
||||
gcFIXUP2(s->queue_front, gc);
|
||||
gcFIXUP2(s->queue_end, gc);
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(fsemaphore_t));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define fsemaphore_IS_ATOMIC 0
|
||||
|
@ -107,28 +137,43 @@ static int fsemaphore_FIXUP(void *p, struct NewGC *gc) {
|
|||
#else
|
||||
|
||||
static int sequential_future_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(future_t));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int sequential_future_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
future_t *f = (future_t *)p;
|
||||
gcMARK2(f->orig_lambda, gc);
|
||||
gcMARK2(f->running_sema, gc);
|
||||
gcMARK2(f->retval, gc);
|
||||
gcMARK2(f->multiple_array, gc);
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(future_t));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int sequential_future_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
future_t *f = (future_t *)p;
|
||||
gcFIXUP2(f->orig_lambda, gc);
|
||||
gcFIXUP2(f->running_sema, gc);
|
||||
gcFIXUP2(f->retval, gc);
|
||||
gcFIXUP2(f->multiple_array, gc);
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(future_t));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define sequential_future_IS_ATOMIC 0
|
||||
|
@ -136,22 +181,37 @@ static int sequential_future_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int sequential_fsemaphore_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(fsemaphore_t));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int sequential_fsemaphore_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
fsemaphore_t *s = (fsemaphore_t*)p;
|
||||
gcMARK2(s->sema, gc);
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(fsemaphore_t));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int sequential_fsemaphore_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
fsemaphore_t *s = (fsemaphore_t*)p;
|
||||
gcFIXUP2(s->sema, gc);
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(fsemaphore_t));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define sequential_fsemaphore_IS_ATOMIC 0
|
||||
|
|
|
@ -1,13 +1,17 @@
|
|||
/* >>>> Generated by mkmark.rkt from mzmarksrc.c <<<< */
|
||||
|
||||
static int hash_tree_val_SIZE(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
Scheme_Hash_Tree *ht = (Scheme_Hash_Tree *)p;
|
||||
int popcount = hamt_popcount(ht->bitmap);
|
||||
return
|
||||
gcBYTES_TO_WORDS(HASH_TREE_RECORD_SIZE(SCHEME_HASHTR_KIND(ht), popcount));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int hash_tree_val_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Scheme_Hash_Tree *ht = (Scheme_Hash_Tree *)p;
|
||||
int popcount = hamt_popcount(ht->bitmap);
|
||||
int i;
|
||||
|
@ -15,11 +19,17 @@ static int hash_tree_val_MARK(void *p, struct NewGC *gc) {
|
|||
gcMARK2(ht->els[i], gc);
|
||||
}
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(HASH_TREE_RECORD_SIZE(SCHEME_HASHTR_KIND(ht), popcount));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int hash_tree_val_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Scheme_Hash_Tree *ht = (Scheme_Hash_Tree *)p;
|
||||
int popcount = hamt_popcount(ht->bitmap);
|
||||
int i;
|
||||
|
@ -27,8 +37,13 @@ static int hash_tree_val_FIXUP(void *p, struct NewGC *gc) {
|
|||
gcFIXUP2(ht->els[i], gc);
|
||||
}
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(HASH_TREE_RECORD_SIZE(SCHEME_HASHTR_KIND(ht), popcount));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define hash_tree_val_IS_ATOMIC 0
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
/* >>>> Generated by mkmark.rkt from mzmarksrc.c <<<< */
|
||||
|
||||
static int native_closure_SIZE(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
Scheme_Native_Closure *c = (Scheme_Native_Closure *)p;
|
||||
int closure_size = ((Scheme_Native_Closure_Data *)GC_resolve2(c->code, gc))->closure_size;
|
||||
|
||||
|
@ -8,12 +9,15 @@ static int native_closure_SIZE(void *p, struct NewGC *gc) {
|
|||
closure_size = -(closure_size + 1);
|
||||
}
|
||||
|
||||
return
|
||||
gcBYTES_TO_WORDS((sizeof(Scheme_Native_Closure)
|
||||
+ (closure_size - mzFLEX_DELTA) * sizeof(Scheme_Object *)));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int native_closure_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Scheme_Native_Closure *c = (Scheme_Native_Closure *)p;
|
||||
int closure_size = ((Scheme_Native_Closure_Data *)GC_resolve2(c->code, gc))->closure_size;
|
||||
|
||||
|
@ -37,12 +41,18 @@ static int native_closure_MARK(void *p, struct NewGC *gc) {
|
|||
# undef CLOSURE_DATA_TYPE
|
||||
}
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS((sizeof(Scheme_Native_Closure)
|
||||
+ (closure_size - mzFLEX_DELTA) * sizeof(Scheme_Object *)));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int native_closure_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Scheme_Native_Closure *c = (Scheme_Native_Closure *)p;
|
||||
int closure_size = ((Scheme_Native_Closure_Data *)GC_resolve2(c->code, gc))->closure_size;
|
||||
|
||||
|
@ -61,9 +71,14 @@ static int native_closure_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
}
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS((sizeof(Scheme_Native_Closure)
|
||||
+ (closure_size - mzFLEX_DELTA) * sizeof(Scheme_Object *)));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define native_closure_IS_ATOMIC 0
|
||||
|
@ -71,11 +86,15 @@ static int native_closure_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int mark_jit_state_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(mz_jit_state));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_jit_state_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
mz_jit_state *j = (mz_jit_state *)p;
|
||||
gcMARK2(j->mappings, gc);
|
||||
gcMARK2(j->self_data, gc);
|
||||
|
@ -84,11 +103,17 @@ static int mark_jit_state_MARK(void *p, struct NewGC *gc) {
|
|||
gcMARK2(j->retaining_data, gc);
|
||||
gcMARK2(j->patch_depth, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(mz_jit_state));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_jit_state_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
mz_jit_state *j = (mz_jit_state *)p;
|
||||
gcFIXUP2(j->mappings, gc);
|
||||
gcFIXUP2(j->self_data, gc);
|
||||
|
@ -97,8 +122,13 @@ static int mark_jit_state_FIXUP(void *p, struct NewGC *gc) {
|
|||
gcFIXUP2(j->retaining_data, gc);
|
||||
gcFIXUP2(j->patch_depth, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(mz_jit_state));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_jit_state_IS_ATOMIC 0
|
||||
|
@ -106,11 +136,15 @@ static int mark_jit_state_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int native_unclosed_proc_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Native_Closure_Data));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int native_unclosed_proc_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Scheme_Native_Closure_Data *d = (Scheme_Native_Closure_Data *)p;
|
||||
int i;
|
||||
|
||||
|
@ -125,11 +159,17 @@ static int native_unclosed_proc_MARK(void *p, struct NewGC *gc) {
|
|||
}
|
||||
gcMARK2(d->tl_map, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Native_Closure_Data));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int native_unclosed_proc_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Scheme_Native_Closure_Data *d = (Scheme_Native_Closure_Data *)p;
|
||||
int i;
|
||||
|
||||
|
@ -144,8 +184,13 @@ static int native_unclosed_proc_FIXUP(void *p, struct NewGC *gc) {
|
|||
}
|
||||
gcFIXUP2(d->tl_map, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Native_Closure_Data));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define native_unclosed_proc_IS_ATOMIC 0
|
||||
|
@ -153,28 +198,43 @@ static int native_unclosed_proc_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int native_unclosed_proc_plus_case_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Native_Closure_Data_Plus_Case));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int native_unclosed_proc_plus_case_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Scheme_Native_Closure_Data_Plus_Case *d = (Scheme_Native_Closure_Data_Plus_Case *)p;
|
||||
|
||||
native_unclosed_proc_MARK(p, gc);
|
||||
gcMARK2(d->case_lam, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Native_Closure_Data_Plus_Case));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int native_unclosed_proc_plus_case_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Scheme_Native_Closure_Data_Plus_Case *d = (Scheme_Native_Closure_Data_Plus_Case *)p;
|
||||
|
||||
native_unclosed_proc_FIXUP(p, gc);
|
||||
gcFIXUP2(d->case_lam, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Native_Closure_Data_Plus_Case));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define native_unclosed_proc_plus_case_IS_ATOMIC 0
|
||||
|
|
|
@ -1,11 +1,15 @@
|
|||
/* >>>> Generated by mkmark.rkt from mzmarksrc.c <<<< */
|
||||
|
||||
static int mark_letrec_check_frame_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Letrec_Check_Frame));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_letrec_check_frame_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Letrec_Check_Frame *frame = (Letrec_Check_Frame *)p;
|
||||
|
||||
gcMARK2(frame->def, gc);
|
||||
|
@ -14,11 +18,17 @@ static int mark_letrec_check_frame_MARK(void *p, struct NewGC *gc) {
|
|||
gcMARK2(frame->head, gc);
|
||||
gcMARK2(frame->deferred_chain, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Letrec_Check_Frame));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_letrec_check_frame_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Letrec_Check_Frame *frame = (Letrec_Check_Frame *)p;
|
||||
|
||||
gcFIXUP2(frame->def, gc);
|
||||
|
@ -27,8 +37,13 @@ static int mark_letrec_check_frame_FIXUP(void *p, struct NewGC *gc) {
|
|||
gcFIXUP2(frame->head, gc);
|
||||
gcFIXUP2(frame->deferred_chain, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Letrec_Check_Frame));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_letrec_check_frame_IS_ATOMIC 0
|
||||
|
@ -36,30 +51,45 @@ static int mark_letrec_check_frame_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int mark_scheme_deferred_expr_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Deferred_Expr));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_scheme_deferred_expr_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Scheme_Deferred_Expr *clos = (Scheme_Deferred_Expr *)p;
|
||||
|
||||
gcMARK2(clos->expr, gc);
|
||||
gcMARK2(clos->frame, gc);
|
||||
gcMARK2(clos->chain_next, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Deferred_Expr));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_scheme_deferred_expr_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Scheme_Deferred_Expr *clos = (Scheme_Deferred_Expr *)p;
|
||||
|
||||
gcFIXUP2(clos->expr, gc);
|
||||
gcFIXUP2(clos->frame, gc);
|
||||
gcFIXUP2(clos->chain_next, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Deferred_Expr));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_scheme_deferred_expr_IS_ATOMIC 0
|
||||
|
|
|
@ -2,13 +2,17 @@
|
|||
|
||||
#ifdef USE_TCP
|
||||
static int mark_listener_SIZE(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
listener_t *l = (listener_t *)p;
|
||||
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(listener_t) + ((l->count - mzFLEX_DELTA) * sizeof(tcp_t)));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_listener_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
listener_t *l = (listener_t *)p;
|
||||
|
||||
|
||||
|
@ -17,11 +21,17 @@ static int mark_listener_MARK(void *p, struct NewGC *gc) {
|
|||
gcMARK2(l->pfd, gc);
|
||||
# endif
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(listener_t) + ((l->count - mzFLEX_DELTA) * sizeof(tcp_t)));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_listener_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
listener_t *l = (listener_t *)p;
|
||||
|
||||
|
||||
|
@ -30,8 +40,13 @@ static int mark_listener_FIXUP(void *p, struct NewGC *gc) {
|
|||
gcFIXUP2(l->pfd, gc);
|
||||
# endif
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(listener_t) + ((l->count - mzFLEX_DELTA) * sizeof(tcp_t)));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_listener_IS_ATOMIC 0
|
||||
|
@ -39,28 +54,43 @@ static int mark_listener_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int mark_tcp_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Tcp));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_tcp_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Scheme_Tcp *tcp = (Scheme_Tcp *)p;
|
||||
|
||||
gcMARK2(tcp->b.buffer, gc);
|
||||
gcMARK2(tcp->b.out_buffer, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Tcp));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_tcp_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Scheme_Tcp *tcp = (Scheme_Tcp *)p;
|
||||
|
||||
gcFIXUP2(tcp->b.buffer, gc);
|
||||
gcFIXUP2(tcp->b.out_buffer, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Tcp));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_tcp_IS_ATOMIC 0
|
||||
|
@ -69,28 +99,43 @@ static int mark_tcp_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
# ifdef UDP_IS_SUPPORTED
|
||||
static int mark_udp_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_UDP));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_udp_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Scheme_UDP *udp = (Scheme_UDP *)p;
|
||||
|
||||
gcMARK2(udp->previous_from_addr, gc);
|
||||
gcMARK2(udp->mref, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_UDP));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_udp_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Scheme_UDP *udp = (Scheme_UDP *)p;
|
||||
|
||||
gcFIXUP2(udp->previous_from_addr, gc);
|
||||
gcFIXUP2(udp->mref, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_UDP));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_udp_IS_ATOMIC 0
|
||||
|
@ -98,11 +143,15 @@ static int mark_udp_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int mark_udp_evt_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_UDP_Evt));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_udp_evt_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Scheme_UDP_Evt *uw = (Scheme_UDP_Evt *)p;
|
||||
|
||||
gcMARK2(uw->udp, gc);
|
||||
|
@ -110,11 +159,17 @@ static int mark_udp_evt_MARK(void *p, struct NewGC *gc) {
|
|||
gcMARK2(uw->dest_addrs, gc);
|
||||
gcMARK2(uw->dest_addr_lens, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_UDP_Evt));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_udp_evt_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Scheme_UDP_Evt *uw = (Scheme_UDP_Evt *)p;
|
||||
|
||||
gcFIXUP2(uw->udp, gc);
|
||||
|
@ -122,8 +177,13 @@ static int mark_udp_evt_FIXUP(void *p, struct NewGC *gc) {
|
|||
gcFIXUP2(uw->dest_addrs, gc);
|
||||
gcFIXUP2(uw->dest_addr_lens, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_UDP_Evt));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_udp_evt_IS_ATOMIC 0
|
||||
|
|
|
@ -1,11 +1,15 @@
|
|||
/* >>>> Generated by mkmark.rkt from mzmarksrc.c <<<< */
|
||||
|
||||
static int mark_optimize_info_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Optimize_Info));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_optimize_info_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Optimize_Info *i = (Optimize_Info *)p;
|
||||
|
||||
gcMARK2(i->stat_dists, gc);
|
||||
|
@ -21,11 +25,17 @@ static int mark_optimize_info_MARK(void *p, struct NewGC *gc) {
|
|||
gcMARK2(i->logger, gc);
|
||||
gcMARK2(i->types, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Optimize_Info));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_optimize_info_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Optimize_Info *i = (Optimize_Info *)p;
|
||||
|
||||
gcFIXUP2(i->stat_dists, gc);
|
||||
|
@ -41,8 +51,13 @@ static int mark_optimize_info_FIXUP(void *p, struct NewGC *gc) {
|
|||
gcFIXUP2(i->logger, gc);
|
||||
gcFIXUP2(i->types, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Optimize_Info));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_optimize_info_IS_ATOMIC 0
|
||||
|
@ -50,26 +65,41 @@ static int mark_optimize_info_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int mark_once_used_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Once_Used));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_once_used_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Scheme_Once_Used *o = (Scheme_Once_Used *)p;
|
||||
gcMARK2(o->expr, gc);
|
||||
gcMARK2(o->info, gc);
|
||||
gcMARK2(o->next, gc);
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Once_Used));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_once_used_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Scheme_Once_Used *o = (Scheme_Once_Used *)p;
|
||||
gcFIXUP2(o->expr, gc);
|
||||
gcFIXUP2(o->info, gc);
|
||||
gcFIXUP2(o->next, gc);
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Once_Used));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_once_used_IS_ATOMIC 0
|
||||
|
|
|
@ -1,24 +1,39 @@
|
|||
/* >>>> Generated by mkmark.rkt from mzmarksrc.c <<<< */
|
||||
|
||||
static int place_bi_channel_val_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Place_Bi_Channel));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int place_bi_channel_val_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Scheme_Place_Bi_Channel *pbc = (Scheme_Place_Bi_Channel *)p;
|
||||
gcMARK2(pbc->link, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Place_Bi_Channel));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int place_bi_channel_val_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Scheme_Place_Bi_Channel *pbc = (Scheme_Place_Bi_Channel *)p;
|
||||
gcFIXUP2(pbc->link, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Place_Bi_Channel));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define place_bi_channel_val_IS_ATOMIC 0
|
||||
|
@ -26,18 +41,33 @@ static int place_bi_channel_val_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int place_object_val_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Place_Object));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int place_object_val_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Place_Object));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int place_object_val_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Place_Object));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define place_object_val_IS_ATOMIC 1
|
||||
|
@ -45,11 +75,15 @@ static int place_object_val_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int place_val_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Place));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int place_val_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Scheme_Place *pr = (Scheme_Place *)p;
|
||||
gcMARK2(pr->channel, gc);
|
||||
gcMARK2(pr->mref, gc);
|
||||
|
@ -58,11 +92,17 @@ static int place_val_MARK(void *p, struct NewGC *gc) {
|
|||
gcMARK2(pr->prev, gc);
|
||||
gcMARK2(pr->next, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Place));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int place_val_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Scheme_Place *pr = (Scheme_Place *)p;
|
||||
gcFIXUP2(pr->channel, gc);
|
||||
gcFIXUP2(pr->mref, gc);
|
||||
|
@ -71,8 +111,13 @@ static int place_val_FIXUP(void *p, struct NewGC *gc) {
|
|||
gcFIXUP2(pr->prev, gc);
|
||||
gcFIXUP2(pr->next, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Place));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define place_val_IS_ATOMIC 0
|
||||
|
@ -80,11 +125,15 @@ static int place_val_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int place_async_channel_val_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Place_Async_Channel));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int place_async_channel_val_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Scheme_Place_Async_Channel *pac = (Scheme_Place_Async_Channel *)p;
|
||||
Scheme_Object *pr;
|
||||
int i, j, sz;
|
||||
|
@ -106,11 +155,17 @@ static int place_async_channel_val_MARK(void *p, struct NewGC *gc) {
|
|||
j = ((j + 1) % sz);
|
||||
}
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Place_Async_Channel));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int place_async_channel_val_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Scheme_Place_Async_Channel *pac = (Scheme_Place_Async_Channel *)p;
|
||||
Scheme_Object *pr;
|
||||
int i, j, sz;
|
||||
|
@ -132,8 +187,13 @@ static int place_async_channel_val_FIXUP(void *p, struct NewGC *gc) {
|
|||
j = ((j + 1) % sz);
|
||||
}
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Place_Async_Channel));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define place_async_channel_val_IS_ATOMIC 0
|
||||
|
@ -141,24 +201,39 @@ static int place_async_channel_val_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int serialized_file_fd_val_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Serialized_File_FD));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int serialized_file_fd_val_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Scheme_Serialized_File_FD *ffd = (Scheme_Serialized_File_FD *) p;
|
||||
gcMARK2(ffd->name, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Serialized_File_FD));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int serialized_file_fd_val_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Scheme_Serialized_File_FD *ffd = (Scheme_Serialized_File_FD *) p;
|
||||
gcFIXUP2(ffd->name, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Serialized_File_FD));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define serialized_file_fd_val_IS_ATOMIC 0
|
||||
|
@ -166,24 +241,39 @@ static int serialized_file_fd_val_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int serialized_socket_fd_val_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Serialized_Socket_FD));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int serialized_socket_fd_val_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Scheme_Serialized_Socket_FD *sfd = (Scheme_Serialized_Socket_FD *) p;
|
||||
gcMARK2(sfd->name, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Serialized_Socket_FD));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int serialized_socket_fd_val_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Scheme_Serialized_Socket_FD *sfd = (Scheme_Serialized_Socket_FD *) p;
|
||||
gcFIXUP2(sfd->name, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Serialized_Socket_FD));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define serialized_socket_fd_val_IS_ATOMIC 0
|
||||
|
|
|
@ -1,26 +1,41 @@
|
|||
/* >>>> Generated by mkmark.rkt from mzmarksrc.c <<<< */
|
||||
|
||||
static int mark_input_file_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Input_File));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_input_file_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Scheme_Input_File *i = (Scheme_Input_File *)p;
|
||||
|
||||
gcMARK2(i->f, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Input_File));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_input_file_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Scheme_Input_File *i = (Scheme_Input_File *)p;
|
||||
|
||||
gcFIXUP2(i->f, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Input_File));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_input_file_IS_ATOMIC 0
|
||||
|
@ -28,26 +43,41 @@ static int mark_input_file_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int mark_output_file_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Output_File));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_output_file_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Scheme_Output_File *o = (Scheme_Output_File *)p;
|
||||
|
||||
gcMARK2(o->f, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Output_File));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_output_file_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Scheme_Output_File *o = (Scheme_Output_File *)p;
|
||||
|
||||
gcFIXUP2(o->f, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Output_File));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_output_file_IS_ATOMIC 0
|
||||
|
@ -56,30 +86,45 @@ static int mark_output_file_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
#ifdef MZ_FDS
|
||||
static int mark_input_fd_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_FD));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_input_fd_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Scheme_FD *fd = (Scheme_FD *)p;
|
||||
|
||||
gcMARK2(fd->buffer, gc);
|
||||
gcMARK2(fd->refcount, gc);
|
||||
gcMARK2(fd->flush_handle, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_FD));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_input_fd_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Scheme_FD *fd = (Scheme_FD *)p;
|
||||
|
||||
gcFIXUP2(fd->buffer, gc);
|
||||
gcFIXUP2(fd->refcount, gc);
|
||||
gcFIXUP2(fd->flush_handle, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_FD));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_input_fd_IS_ATOMIC 0
|
||||
|
@ -89,26 +134,41 @@ static int mark_input_fd_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
#if defined(UNIX_PROCESSES) && !(defined(MZ_USE_PLACES) && defined(MZ_PRECISE_GC))
|
||||
static int mark_system_child_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(System_Child));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_system_child_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
System_Child *sc = (System_Child *)p;
|
||||
|
||||
gcMARK2(sc->next, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(System_Child));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_system_child_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
System_Child *sc = (System_Child *)p;
|
||||
|
||||
gcFIXUP2(sc->next, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(System_Child));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_system_child_IS_ATOMIC 0
|
||||
|
@ -118,28 +178,43 @@ static int mark_system_child_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
#ifdef USE_OSKIT_CONSOLE
|
||||
static int mark_oskit_console_input_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(osk_console_input));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_oskit_console_input_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
osk_console_input *c = (osk_console_input *)p;
|
||||
|
||||
gcMARK2(c->buffer, gc);
|
||||
gcMARK2(c->next, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(osk_console_input));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_oskit_console_input_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
osk_console_input *c = (osk_console_input *)p;
|
||||
|
||||
gcFIXUP2(c->buffer, gc);
|
||||
gcFIXUP2(c->next, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(osk_console_input));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_oskit_console_input_IS_ATOMIC 0
|
||||
|
@ -148,28 +223,43 @@ static int mark_oskit_console_input_FIXUP(void *p, struct NewGC *gc) {
|
|||
#endif
|
||||
|
||||
static int mark_subprocess_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Subprocess));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_subprocess_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
#ifndef WINDOWS_PROCESSES
|
||||
Scheme_Subprocess *sp = (Scheme_Subprocess *)p;
|
||||
gcMARK2(sp->handle, gc);
|
||||
gcMARK2(sp->mref, gc);
|
||||
#endif
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Subprocess));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_subprocess_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
#ifndef WINDOWS_PROCESSES
|
||||
Scheme_Subprocess *sp = (Scheme_Subprocess *)p;
|
||||
gcFIXUP2(sp->handle, gc);
|
||||
gcFIXUP2(sp->mref, gc);
|
||||
#endif
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Subprocess));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_subprocess_IS_ATOMIC 0
|
||||
|
@ -177,26 +267,41 @@ static int mark_subprocess_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int mark_read_write_evt_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Read_Write_Evt));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_read_write_evt_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Scheme_Read_Write_Evt *rww = (Scheme_Read_Write_Evt *)p;
|
||||
gcMARK2(rww->port, gc);
|
||||
gcMARK2(rww->v, gc);
|
||||
gcMARK2(rww->str, gc);
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Read_Write_Evt));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_read_write_evt_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Scheme_Read_Write_Evt *rww = (Scheme_Read_Write_Evt *)p;
|
||||
gcFIXUP2(rww->port, gc);
|
||||
gcFIXUP2(rww->v, gc);
|
||||
gcFIXUP2(rww->str, gc);
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Read_Write_Evt));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_read_write_evt_IS_ATOMIC 0
|
||||
|
@ -204,24 +309,39 @@ static int mark_read_write_evt_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int mark_filesystem_change_evt_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Filesystem_Change_Evt));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_filesystem_change_evt_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Scheme_Filesystem_Change_Evt *fc = (Scheme_Filesystem_Change_Evt *)p;
|
||||
gcMARK2(fc->sema, gc);
|
||||
gcMARK2(fc->mref, gc);
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Filesystem_Change_Evt));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_filesystem_change_evt_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Scheme_Filesystem_Change_Evt *fc = (Scheme_Filesystem_Change_Evt *)p;
|
||||
gcFIXUP2(fc->sema, gc);
|
||||
gcFIXUP2(fc->mref, gc);
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Filesystem_Change_Evt));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_filesystem_change_evt_IS_ATOMIC 0
|
||||
|
|
|
@ -1,11 +1,15 @@
|
|||
/* >>>> Generated by mkmark.rkt from mzmarksrc.c <<<< */
|
||||
|
||||
static int mark_load_handler_data_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(LoadHandlerData));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_load_handler_data_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
LoadHandlerData *d = (LoadHandlerData *)p;
|
||||
|
||||
gcMARK2(d->config, gc);
|
||||
|
@ -14,11 +18,17 @@ static int mark_load_handler_data_MARK(void *p, struct NewGC *gc) {
|
|||
gcMARK2(d->stxsrc, gc);
|
||||
gcMARK2(d->expected_module, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(LoadHandlerData));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_load_handler_data_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
LoadHandlerData *d = (LoadHandlerData *)p;
|
||||
|
||||
gcFIXUP2(d->config, gc);
|
||||
|
@ -27,8 +37,13 @@ static int mark_load_handler_data_FIXUP(void *p, struct NewGC *gc) {
|
|||
gcFIXUP2(d->stxsrc, gc);
|
||||
gcFIXUP2(d->expected_module, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(LoadHandlerData));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_load_handler_data_IS_ATOMIC 0
|
||||
|
@ -36,26 +51,41 @@ static int mark_load_handler_data_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int mark_indexed_string_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Indexed_String));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_indexed_string_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Scheme_Indexed_String *is = (Scheme_Indexed_String *)p;
|
||||
|
||||
gcMARK2(is->string, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Indexed_String));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_indexed_string_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Scheme_Indexed_String *is = (Scheme_Indexed_String *)p;
|
||||
|
||||
gcFIXUP2(is->string, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Indexed_String));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_indexed_string_IS_ATOMIC 0
|
||||
|
@ -63,11 +93,15 @@ static int mark_indexed_string_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int mark_user_input_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(User_Input_Port));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_user_input_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
User_Input_Port *uip = (User_Input_Port *)p;
|
||||
|
||||
gcMARK2(uip->read_proc, gc);
|
||||
|
@ -81,11 +115,17 @@ static int mark_user_input_MARK(void *p, struct NewGC *gc) {
|
|||
gcMARK2(uip->reuse_str, gc);
|
||||
gcMARK2(uip->peeked, gc);
|
||||
gcMARK2(uip->prefix_pipe, gc);
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(User_Input_Port));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_user_input_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
User_Input_Port *uip = (User_Input_Port *)p;
|
||||
|
||||
gcFIXUP2(uip->read_proc, gc);
|
||||
|
@ -99,8 +139,13 @@ static int mark_user_input_FIXUP(void *p, struct NewGC *gc) {
|
|||
gcFIXUP2(uip->reuse_str, gc);
|
||||
gcFIXUP2(uip->peeked, gc);
|
||||
gcFIXUP2(uip->prefix_pipe, gc);
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(User_Input_Port));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_user_input_IS_ATOMIC 0
|
||||
|
@ -108,11 +153,15 @@ static int mark_user_input_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int mark_user_output_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(User_Output_Port));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_user_output_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
User_Output_Port *uop = (User_Output_Port *)p;
|
||||
|
||||
gcMARK2(uop->evt, gc);
|
||||
|
@ -125,11 +174,17 @@ static int mark_user_output_MARK(void *p, struct NewGC *gc) {
|
|||
gcMARK2(uop->buffer_mode_proc, gc);
|
||||
gcMARK2(uop->close_proc, gc);
|
||||
gcMARK2(uop->buffer_pipe, gc);
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(User_Output_Port));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_user_output_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
User_Output_Port *uop = (User_Output_Port *)p;
|
||||
|
||||
gcFIXUP2(uop->evt, gc);
|
||||
|
@ -142,8 +197,13 @@ static int mark_user_output_FIXUP(void *p, struct NewGC *gc) {
|
|||
gcFIXUP2(uop->buffer_mode_proc, gc);
|
||||
gcFIXUP2(uop->close_proc, gc);
|
||||
gcFIXUP2(uop->buffer_pipe, gc);
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(User_Output_Port));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_user_output_IS_ATOMIC 0
|
||||
|
|
|
@ -1,30 +1,45 @@
|
|||
/* >>>> Generated by mkmark.rkt from mzmarksrc.c <<<< */
|
||||
|
||||
static int mark_print_params_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(PrintParams));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_print_params_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
PrintParams *pp = (PrintParams *)p;
|
||||
gcMARK2(pp->inspector, gc);
|
||||
gcMARK2(pp->print_port, gc);
|
||||
gcMARK2(pp->print_buffer, gc);
|
||||
gcMARK2(pp->depth_delta, gc);
|
||||
gcMARK2(pp->uq_ht, gc);
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(PrintParams));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_print_params_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
PrintParams *pp = (PrintParams *)p;
|
||||
gcFIXUP2(pp->inspector, gc);
|
||||
gcFIXUP2(pp->print_port, gc);
|
||||
gcFIXUP2(pp->print_buffer, gc);
|
||||
gcFIXUP2(pp->depth_delta, gc);
|
||||
gcFIXUP2(pp->uq_ht, gc);
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(PrintParams));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_print_params_IS_ATOMIC 0
|
||||
|
@ -32,11 +47,15 @@ static int mark_print_params_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int mark_marshal_tables_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Marshal_Tables));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_marshal_tables_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Scheme_Marshal_Tables *mt = (Scheme_Marshal_Tables *)p;
|
||||
gcMARK2(mt->symtab, gc);
|
||||
gcMARK2(mt->st_refs, gc);
|
||||
|
@ -55,11 +74,17 @@ static int mark_marshal_tables_MARK(void *p, struct NewGC *gc) {
|
|||
gcMARK2(mt->shared_offsets, gc);
|
||||
gcMARK2(mt->path_cache, gc);
|
||||
gcMARK2(mt->sorted_keys, gc);
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Marshal_Tables));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_marshal_tables_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Scheme_Marshal_Tables *mt = (Scheme_Marshal_Tables *)p;
|
||||
gcFIXUP2(mt->symtab, gc);
|
||||
gcFIXUP2(mt->st_refs, gc);
|
||||
|
@ -78,8 +103,13 @@ static int mark_marshal_tables_FIXUP(void *p, struct NewGC *gc) {
|
|||
gcFIXUP2(mt->shared_offsets, gc);
|
||||
gcFIXUP2(mt->path_cache, gc);
|
||||
gcFIXUP2(mt->sorted_keys, gc);
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Marshal_Tables));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_marshal_tables_IS_ATOMIC 0
|
||||
|
|
|
@ -1,18 +1,33 @@
|
|||
/* >>>> Generated by mkmark.rkt from mzmarksrc.c <<<< */
|
||||
|
||||
static int mark_indent_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Indent));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_indent_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Indent));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_indent_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Indent));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_indent_IS_ATOMIC 1
|
||||
|
@ -20,11 +35,15 @@ static int mark_indent_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int mark_cport_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(CPort));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_cport_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
CPort *cp = (CPort *)p;
|
||||
gcMARK2(cp->start, gc);
|
||||
gcMARK2(cp->orig_port, gc);
|
||||
|
@ -37,11 +56,17 @@ static int mark_cport_MARK(void *p, struct NewGC *gc) {
|
|||
gcMARK2(cp->shared_offsets, gc);
|
||||
gcMARK2(cp->delay_info, gc);
|
||||
gcMARK2(cp->symtab_refs, gc);
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(CPort));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_cport_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
CPort *cp = (CPort *)p;
|
||||
gcFIXUP2(cp->start, gc);
|
||||
gcFIXUP2(cp->orig_port, gc);
|
||||
|
@ -54,8 +79,13 @@ static int mark_cport_FIXUP(void *p, struct NewGC *gc) {
|
|||
gcFIXUP2(cp->shared_offsets, gc);
|
||||
gcFIXUP2(cp->delay_info, gc);
|
||||
gcFIXUP2(cp->symtab_refs, gc);
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(CPort));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_cport_IS_ATOMIC 0
|
||||
|
@ -63,28 +93,43 @@ static int mark_cport_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int mark_readtable_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Readtable));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_readtable_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Readtable *t = (Readtable *)p;
|
||||
gcMARK2(t->mapping, gc);
|
||||
gcMARK2(t->fast_mapping, gc);
|
||||
gcMARK2(t->symbol_parser, gc);
|
||||
gcMARK2(t->names, gc);
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Readtable));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_readtable_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Readtable *t = (Readtable *)p;
|
||||
gcFIXUP2(t->mapping, gc);
|
||||
gcFIXUP2(t->fast_mapping, gc);
|
||||
gcFIXUP2(t->symbol_parser, gc);
|
||||
gcFIXUP2(t->names, gc);
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Readtable));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_readtable_IS_ATOMIC 0
|
||||
|
@ -92,30 +137,45 @@ static int mark_readtable_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int mark_read_params_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(ReadParams));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_read_params_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
ReadParams *rp = (ReadParams *)p;
|
||||
gcMARK2(rp->table, gc);
|
||||
gcMARK2(rp->magic_sym, gc);
|
||||
gcMARK2(rp->magic_val, gc);
|
||||
gcMARK2(rp->delay_load_info, gc);
|
||||
gcMARK2(rp->read_relative_path, gc);
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(ReadParams));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_read_params_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
ReadParams *rp = (ReadParams *)p;
|
||||
gcFIXUP2(rp->table, gc);
|
||||
gcFIXUP2(rp->magic_sym, gc);
|
||||
gcFIXUP2(rp->magic_val, gc);
|
||||
gcFIXUP2(rp->delay_load_info, gc);
|
||||
gcFIXUP2(rp->read_relative_path, gc);
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(ReadParams));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_read_params_IS_ATOMIC 0
|
||||
|
@ -123,11 +183,15 @@ static int mark_read_params_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int mark_delay_load_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Load_Delay));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_delay_load_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Scheme_Load_Delay *ld = (Scheme_Load_Delay *)p;
|
||||
gcMARK2(ld->path, gc);
|
||||
gcMARK2(ld->symtab, gc);
|
||||
|
@ -137,11 +201,17 @@ static int mark_delay_load_MARK(void *p, struct NewGC *gc) {
|
|||
gcMARK2(ld->current_rp, gc);
|
||||
gcMARK2(ld->cached, gc);
|
||||
gcMARK2(ld->cached_port, gc);
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Load_Delay));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_delay_load_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Scheme_Load_Delay *ld = (Scheme_Load_Delay *)p;
|
||||
gcFIXUP2(ld->path, gc);
|
||||
gcFIXUP2(ld->symtab, gc);
|
||||
|
@ -151,8 +221,13 @@ static int mark_delay_load_FIXUP(void *p, struct NewGC *gc) {
|
|||
gcFIXUP2(ld->current_rp, gc);
|
||||
gcFIXUP2(ld->cached, gc);
|
||||
gcFIXUP2(ld->cached_port, gc);
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Load_Delay));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_delay_load_IS_ATOMIC 0
|
||||
|
@ -160,28 +235,43 @@ static int mark_delay_load_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int mark_unmarshal_tables_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Unmarshal_Tables));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_unmarshal_tables_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Scheme_Unmarshal_Tables *ut = (Scheme_Unmarshal_Tables *)p;
|
||||
gcMARK2(ut->rns, gc);
|
||||
gcMARK2(ut->multi_scope_pairs, gc);
|
||||
gcMARK2(ut->rp, gc);
|
||||
gcMARK2(ut->decoded, gc);
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Unmarshal_Tables));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_unmarshal_tables_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Scheme_Unmarshal_Tables *ut = (Scheme_Unmarshal_Tables *)p;
|
||||
gcFIXUP2(ut->rns, gc);
|
||||
gcFIXUP2(ut->multi_scope_pairs, gc);
|
||||
gcFIXUP2(ut->rp, gc);
|
||||
gcFIXUP2(ut->decoded, gc);
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Unmarshal_Tables));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_unmarshal_tables_IS_ATOMIC 0
|
||||
|
|
|
@ -1,25 +1,40 @@
|
|||
/* >>>> Generated by mkmark.rkt from mzmarksrc.c <<<< */
|
||||
|
||||
static int mark_regexp_SIZE(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
regexp *r = (regexp *)p;
|
||||
return
|
||||
gcBYTES_TO_WORDS((sizeof(regexp) + r->regsize));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_regexp_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
regexp *r = (regexp *)p;
|
||||
gcMARK2(r->source, gc);
|
||||
gcMARK2(r->regstart, gc);
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS((sizeof(regexp) + r->regsize));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_regexp_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
regexp *r = (regexp *)p;
|
||||
gcFIXUP2(r->source, gc);
|
||||
gcFIXUP2(r->regstart, gc);
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS((sizeof(regexp) + r->regsize));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_regexp_IS_ATOMIC 0
|
||||
|
@ -27,11 +42,15 @@ static int mark_regexp_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int mark_regwork_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Regwork));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_regwork_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Regwork *r = (Regwork *)p;
|
||||
gcMARK2(r->str, gc);
|
||||
gcMARK2(r->instr, gc);
|
||||
|
@ -45,11 +64,17 @@ static int mark_regwork_MARK(void *p, struct NewGC *gc) {
|
|||
gcMARK2(r->prefix, gc);
|
||||
gcMARK2(r->lazy_string, gc);
|
||||
gcMARK2(r->rewind_stack, gc);
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Regwork));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_regwork_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Regwork *r = (Regwork *)p;
|
||||
gcFIXUP2(r->str, gc);
|
||||
gcFIXUP2(r->instr, gc);
|
||||
|
@ -63,8 +88,13 @@ static int mark_regwork_FIXUP(void *p, struct NewGC *gc) {
|
|||
gcFIXUP2(r->prefix, gc);
|
||||
gcFIXUP2(r->lazy_string, gc);
|
||||
gcFIXUP2(r->rewind_stack, gc);
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Regwork));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_regwork_IS_ATOMIC 0
|
||||
|
@ -72,24 +102,39 @@ static int mark_regwork_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int mark_lazy_string_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(rx_lazy_str_t));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_lazy_string_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
rx_lazy_str_t *ls = (rx_lazy_str_t *)p;
|
||||
gcMARK2(ls->s, gc);
|
||||
gcMARK2(ls->chars, gc);
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(rx_lazy_str_t));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_lazy_string_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
rx_lazy_str_t *ls = (rx_lazy_str_t *)p;
|
||||
gcFIXUP2(ls->s, gc);
|
||||
gcFIXUP2(ls->chars, gc);
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(rx_lazy_str_t));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_lazy_string_IS_ATOMIC 0
|
||||
|
|
|
@ -1,11 +1,15 @@
|
|||
/* >>>> Generated by mkmark.rkt from mzmarksrc.c <<<< */
|
||||
|
||||
static int mark_resolve_info_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Resolve_Info));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_resolve_info_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Resolve_Info *i = (Resolve_Info *)p;
|
||||
|
||||
gcMARK2(i->prefix, gc);
|
||||
|
@ -19,11 +23,17 @@ static int mark_resolve_info_MARK(void *p, struct NewGC *gc) {
|
|||
gcMARK2(i->lifted, gc);
|
||||
gcMARK2(i->next, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Resolve_Info));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_resolve_info_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Resolve_Info *i = (Resolve_Info *)p;
|
||||
|
||||
gcFIXUP2(i->prefix, gc);
|
||||
|
@ -37,8 +47,13 @@ static int mark_resolve_info_FIXUP(void *p, struct NewGC *gc) {
|
|||
gcFIXUP2(i->lifted, gc);
|
||||
gcFIXUP2(i->next, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Resolve_Info));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_resolve_info_IS_ATOMIC 0
|
||||
|
@ -46,11 +61,15 @@ static int mark_resolve_info_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int mark_unresolve_info_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Unresolve_Info));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_unresolve_info_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Unresolve_Info *i = (Unresolve_Info *)p;
|
||||
|
||||
gcMARK2(i->flags, gc);
|
||||
|
@ -65,11 +84,17 @@ static int mark_unresolve_info_MARK(void *p, struct NewGC *gc) {
|
|||
gcMARK2(i->ref_args, gc);
|
||||
gcMARK2(i->ref_lifts, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Unresolve_Info));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_unresolve_info_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Unresolve_Info *i = (Unresolve_Info *)p;
|
||||
|
||||
gcFIXUP2(i->flags, gc);
|
||||
|
@ -84,8 +109,13 @@ static int mark_unresolve_info_FIXUP(void *p, struct NewGC *gc) {
|
|||
gcFIXUP2(i->ref_args, gc);
|
||||
gcFIXUP2(i->ref_lifts, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Unresolve_Info));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_unresolve_info_IS_ATOMIC 0
|
||||
|
|
|
@ -1,30 +1,45 @@
|
|||
/* >>>> Generated by mkmark.rkt from mzmarksrc.c <<<< */
|
||||
|
||||
static int mark_finalization_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Finalization));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_finalization_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Finalization *f = (Finalization *)p;
|
||||
|
||||
gcMARK2(f->data, gc);
|
||||
gcMARK2(f->next, gc);
|
||||
gcMARK2(f->prev, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Finalization));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_finalization_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Finalization *f = (Finalization *)p;
|
||||
|
||||
gcFIXUP2(f->data, gc);
|
||||
gcFIXUP2(f->next, gc);
|
||||
gcFIXUP2(f->prev, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Finalization));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_finalization_IS_ATOMIC 0
|
||||
|
@ -32,11 +47,15 @@ static int mark_finalization_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int mark_finalizations_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Finalizations));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_finalizations_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Finalizations *f = (Finalizations *)p;
|
||||
|
||||
gcMARK2(f->scheme_first, gc);
|
||||
|
@ -45,11 +64,17 @@ static int mark_finalizations_MARK(void *p, struct NewGC *gc) {
|
|||
gcMARK2(f->prim_last, gc);
|
||||
gcMARK2(f->ext_data, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Finalizations));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_finalizations_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Finalizations *f = (Finalizations *)p;
|
||||
|
||||
gcFIXUP2(f->scheme_first, gc);
|
||||
|
@ -58,8 +83,13 @@ static int mark_finalizations_FIXUP(void *p, struct NewGC *gc) {
|
|||
gcFIXUP2(f->prim_last, gc);
|
||||
gcFIXUP2(f->ext_data, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Finalizations));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_finalizations_IS_ATOMIC 0
|
||||
|
|
|
@ -1,11 +1,15 @@
|
|||
/* >>>> Generated by mkmark.rkt from mzmarksrc.c <<<< */
|
||||
|
||||
static int mark_channel_syncer_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Channel_Syncer));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_channel_syncer_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Scheme_Channel_Syncer *w = (Scheme_Channel_Syncer *)p;
|
||||
|
||||
gcMARK2(w->p, gc);
|
||||
|
@ -14,11 +18,17 @@ static int mark_channel_syncer_MARK(void *p, struct NewGC *gc) {
|
|||
gcMARK2(w->syncing, gc);
|
||||
gcMARK2(w->obj, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Channel_Syncer));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_channel_syncer_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Scheme_Channel_Syncer *w = (Scheme_Channel_Syncer *)p;
|
||||
|
||||
gcFIXUP2(w->p, gc);
|
||||
|
@ -27,8 +37,13 @@ static int mark_channel_syncer_FIXUP(void *p, struct NewGC *gc) {
|
|||
gcFIXUP2(w->syncing, gc);
|
||||
gcFIXUP2(w->obj, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Channel_Syncer));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_channel_syncer_IS_ATOMIC 0
|
||||
|
@ -36,18 +51,33 @@ static int mark_channel_syncer_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int mark_alarm_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Alarm));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_alarm_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Alarm));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_alarm_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Alarm));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_alarm_IS_ATOMIC 1
|
||||
|
|
|
@ -1,30 +1,45 @@
|
|||
/* >>>> Generated by mkmark.rkt from mzmarksrc.c <<<< */
|
||||
|
||||
static int mark_sfs_info_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(SFS_Info));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_sfs_info_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
SFS_Info *i = (SFS_Info *)p;
|
||||
|
||||
gcMARK2(i->max_used, gc);
|
||||
gcMARK2(i->max_calls, gc);
|
||||
gcMARK2(i->saved, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(SFS_Info));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_sfs_info_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
SFS_Info *i = (SFS_Info *)p;
|
||||
|
||||
gcFIXUP2(i->max_used, gc);
|
||||
gcFIXUP2(i->max_calls, gc);
|
||||
gcFIXUP2(i->saved, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(SFS_Info));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_sfs_info_IS_ATOMIC 0
|
||||
|
|
|
@ -1,22 +1,37 @@
|
|||
/* >>>> Generated by mkmark.rkt from mzmarksrc.c <<<< */
|
||||
|
||||
static int mark_string_convert_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Converter));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_string_convert_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Scheme_Converter *c = (Scheme_Converter *)p;
|
||||
gcMARK2(c->mref, gc);
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Converter));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_string_convert_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Scheme_Converter *c = (Scheme_Converter *)p;
|
||||
gcFIXUP2(c->mref, gc);
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Converter));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_string_convert_IS_ATOMIC 0
|
||||
|
|
|
@ -2,15 +2,19 @@
|
|||
|
||||
#ifdef MZ_USE_PLACES
|
||||
static int mark_serialized_struct_val_SIZE(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
Scheme_Serialized_Structure *s = (Scheme_Serialized_Structure *)p;
|
||||
int num_slots = s->num_slots;
|
||||
|
||||
return
|
||||
gcBYTES_TO_WORDS((sizeof(Scheme_Serialized_Structure)
|
||||
+ ((num_slots - mzFLEX_DELTA) * sizeof(Scheme_Object *))));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_serialized_struct_val_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Scheme_Serialized_Structure *s = (Scheme_Serialized_Structure *)p;
|
||||
int num_slots = s->num_slots;
|
||||
|
||||
|
@ -21,12 +25,18 @@ static int mark_serialized_struct_val_MARK(void *p, struct NewGC *gc) {
|
|||
for(i = num_slots; i--; )
|
||||
gcMARK2(s->slots[i], gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS((sizeof(Scheme_Serialized_Structure)
|
||||
+ ((num_slots - mzFLEX_DELTA) * sizeof(Scheme_Object *))));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_serialized_struct_val_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Scheme_Serialized_Structure *s = (Scheme_Serialized_Structure *)p;
|
||||
int num_slots = s->num_slots;
|
||||
|
||||
|
@ -37,9 +47,14 @@ static int mark_serialized_struct_val_FIXUP(void *p, struct NewGC *gc) {
|
|||
for(i = num_slots; i--; )
|
||||
gcFIXUP2(s->slots[i], gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS((sizeof(Scheme_Serialized_Structure)
|
||||
+ ((num_slots - mzFLEX_DELTA) * sizeof(Scheme_Object *))));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_serialized_struct_val_IS_ATOMIC 0
|
||||
|
@ -48,15 +63,19 @@ static int mark_serialized_struct_val_FIXUP(void *p, struct NewGC *gc) {
|
|||
#endif
|
||||
|
||||
static int mark_struct_val_SIZE(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
Scheme_Structure *s = (Scheme_Structure *)p;
|
||||
int num_slots = ((Scheme_Struct_Type *)GC_resolve2(s->stype, gc))->num_slots;
|
||||
|
||||
return
|
||||
gcBYTES_TO_WORDS((sizeof(Scheme_Structure)
|
||||
+ ((num_slots - mzFLEX_DELTA) * sizeof(Scheme_Object *))));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_struct_val_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Scheme_Structure *s = (Scheme_Structure *)p;
|
||||
int num_slots = ((Scheme_Struct_Type *)GC_resolve2(s->stype, gc))->num_slots;
|
||||
|
||||
|
@ -67,12 +86,18 @@ static int mark_struct_val_MARK(void *p, struct NewGC *gc) {
|
|||
for(i = num_slots; i--; )
|
||||
gcMARK2(s->slots[i], gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS((sizeof(Scheme_Structure)
|
||||
+ ((num_slots - mzFLEX_DELTA) * sizeof(Scheme_Object *))));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_struct_val_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Scheme_Structure *s = (Scheme_Structure *)p;
|
||||
int num_slots = ((Scheme_Struct_Type *)GC_resolve2(s->stype, gc))->num_slots;
|
||||
|
||||
|
@ -83,9 +108,14 @@ static int mark_struct_val_FIXUP(void *p, struct NewGC *gc) {
|
|||
for(i = num_slots; i--; )
|
||||
gcFIXUP2(s->slots[i], gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS((sizeof(Scheme_Structure)
|
||||
+ ((num_slots - mzFLEX_DELTA) * sizeof(Scheme_Object *))));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_struct_val_IS_ATOMIC 0
|
||||
|
@ -93,15 +123,19 @@ static int mark_struct_val_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int mark_struct_type_val_SIZE(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
Scheme_Struct_Type *t = (Scheme_Struct_Type *)p;
|
||||
|
||||
return
|
||||
gcBYTES_TO_WORDS((sizeof(Scheme_Struct_Type)
|
||||
+ ((t->name_pos + 1 - mzFLEX_DELTA)
|
||||
* sizeof(Scheme_Struct_Type *))));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_struct_type_val_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Scheme_Struct_Type *t = (Scheme_Struct_Type *)p;
|
||||
|
||||
int i;
|
||||
|
@ -119,13 +153,19 @@ static int mark_struct_type_val_MARK(void *p, struct NewGC *gc) {
|
|||
gcMARK2(t->guard, gc);
|
||||
gcMARK2(t->immutables, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS((sizeof(Scheme_Struct_Type)
|
||||
+ ((t->name_pos + 1 - mzFLEX_DELTA)
|
||||
* sizeof(Scheme_Struct_Type *))));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_struct_type_val_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Scheme_Struct_Type *t = (Scheme_Struct_Type *)p;
|
||||
|
||||
int i;
|
||||
|
@ -143,10 +183,15 @@ static int mark_struct_type_val_FIXUP(void *p, struct NewGC *gc) {
|
|||
gcFIXUP2(t->guard, gc);
|
||||
gcFIXUP2(t->immutables, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS((sizeof(Scheme_Struct_Type)
|
||||
+ ((t->name_pos + 1 - mzFLEX_DELTA)
|
||||
* sizeof(Scheme_Struct_Type *))));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_struct_type_val_IS_ATOMIC 0
|
||||
|
@ -154,26 +199,41 @@ static int mark_struct_type_val_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int mark_struct_property_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Struct_Property));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_struct_property_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Scheme_Struct_Property *i = (Scheme_Struct_Property *)p;
|
||||
gcMARK2(i->name, gc);
|
||||
gcMARK2(i->guard, gc);
|
||||
gcMARK2(i->supers, gc);
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Struct_Property));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_struct_property_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Scheme_Struct_Property *i = (Scheme_Struct_Property *)p;
|
||||
gcFIXUP2(i->name, gc);
|
||||
gcFIXUP2(i->guard, gc);
|
||||
gcFIXUP2(i->supers, gc);
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Struct_Property));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_struct_property_IS_ATOMIC 0
|
||||
|
@ -181,28 +241,43 @@ static int mark_struct_property_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int mark_wrapped_evt_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Wrapped_Evt));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_wrapped_evt_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Wrapped_Evt *ww = (Wrapped_Evt *)p;
|
||||
|
||||
gcMARK2(ww->evt, gc);
|
||||
gcMARK2(ww->wrapper, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Wrapped_Evt));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_wrapped_evt_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Wrapped_Evt *ww = (Wrapped_Evt *)p;
|
||||
|
||||
gcFIXUP2(ww->evt, gc);
|
||||
gcFIXUP2(ww->wrapper, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Wrapped_Evt));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_wrapped_evt_IS_ATOMIC 0
|
||||
|
@ -210,26 +285,41 @@ static int mark_wrapped_evt_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int mark_nack_guard_evt_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Nack_Guard_Evt));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_nack_guard_evt_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Nack_Guard_Evt *nw = (Nack_Guard_Evt *)p;
|
||||
|
||||
gcMARK2(nw->maker, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Nack_Guard_Evt));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_nack_guard_evt_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Nack_Guard_Evt *nw = (Nack_Guard_Evt *)p;
|
||||
|
||||
gcFIXUP2(nw->maker, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Nack_Guard_Evt));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_nack_guard_evt_IS_ATOMIC 0
|
||||
|
@ -237,30 +327,45 @@ static int mark_nack_guard_evt_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int mark_active_replace_evt_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Active_Replace_Evt));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_active_replace_evt_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Active_Replace_Evt *a = (Active_Replace_Evt *)p;
|
||||
|
||||
gcMARK2(a->syncing, gc);
|
||||
gcMARK2(a->wrapper, gc);
|
||||
gcMARK2(a->orig, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Active_Replace_Evt));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_active_replace_evt_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Active_Replace_Evt *a = (Active_Replace_Evt *)p;
|
||||
|
||||
gcFIXUP2(a->syncing, gc);
|
||||
gcFIXUP2(a->wrapper, gc);
|
||||
gcFIXUP2(a->orig, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Active_Replace_Evt));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_active_replace_evt_IS_ATOMIC 0
|
||||
|
@ -268,11 +373,15 @@ static int mark_active_replace_evt_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int mark_chaperone_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Chaperone));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_chaperone_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Scheme_Chaperone *px = (Scheme_Chaperone *)p;
|
||||
|
||||
gcMARK2(px->val, gc);
|
||||
|
@ -280,11 +389,17 @@ static int mark_chaperone_MARK(void *p, struct NewGC *gc) {
|
|||
gcMARK2(px->props, gc);
|
||||
gcMARK2(px->redirects, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Chaperone));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_chaperone_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Scheme_Chaperone *px = (Scheme_Chaperone *)p;
|
||||
|
||||
gcFIXUP2(px->val, gc);
|
||||
|
@ -292,8 +407,13 @@ static int mark_chaperone_FIXUP(void *p, struct NewGC *gc) {
|
|||
gcFIXUP2(px->props, gc);
|
||||
gcFIXUP2(px->redirects, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Chaperone));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_chaperone_IS_ATOMIC 0
|
||||
|
|
|
@ -1,22 +1,37 @@
|
|||
/* >>>> Generated by mkmark.rkt from mzmarksrc.c <<<< */
|
||||
|
||||
static int mark_srcloc_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Stx_Srcloc));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_srcloc_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Scheme_Stx_Srcloc *s = (Scheme_Stx_Srcloc *)p;
|
||||
gcMARK2(s->src, gc);
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Stx_Srcloc));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_srcloc_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Scheme_Stx_Srcloc *s = (Scheme_Stx_Srcloc *)p;
|
||||
gcFIXUP2(s->src, gc);
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Stx_Srcloc));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_srcloc_IS_ATOMIC 0
|
||||
|
@ -24,15 +39,19 @@ static int mark_srcloc_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int mark_scope_SIZE(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
Scheme_Scope *m = (Scheme_Scope *)p;
|
||||
int for_multi = SCHEME_SCOPE_HAS_OWNER(m);
|
||||
return
|
||||
(for_multi
|
||||
? gcBYTES_TO_WORDS(sizeof(Scheme_Scope_With_Owner))
|
||||
: gcBYTES_TO_WORDS(sizeof(Scheme_Scope)));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_scope_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Scheme_Scope *m = (Scheme_Scope *)p;
|
||||
int for_multi = SCHEME_SCOPE_HAS_OWNER(m);
|
||||
gcMARK2(m->bindings, gc);
|
||||
|
@ -40,13 +59,19 @@ static int mark_scope_MARK(void *p, struct NewGC *gc) {
|
|||
gcMARK2(((Scheme_Scope_With_Owner *)m)->owner_multi_scope, gc);
|
||||
gcMARK2(((Scheme_Scope_With_Owner *)m)->phase, gc);
|
||||
}
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
(for_multi
|
||||
? gcBYTES_TO_WORDS(sizeof(Scheme_Scope_With_Owner))
|
||||
: gcBYTES_TO_WORDS(sizeof(Scheme_Scope)));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_scope_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Scheme_Scope *m = (Scheme_Scope *)p;
|
||||
int for_multi = SCHEME_SCOPE_HAS_OWNER(m);
|
||||
gcFIXUP2(m->bindings, gc);
|
||||
|
@ -54,10 +79,15 @@ static int mark_scope_FIXUP(void *p, struct NewGC *gc) {
|
|||
gcFIXUP2(((Scheme_Scope_With_Owner *)m)->owner_multi_scope, gc);
|
||||
gcFIXUP2(((Scheme_Scope_With_Owner *)m)->phase, gc);
|
||||
}
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
(for_multi
|
||||
? gcBYTES_TO_WORDS(sizeof(Scheme_Scope_With_Owner))
|
||||
: gcBYTES_TO_WORDS(sizeof(Scheme_Scope)));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_scope_IS_ATOMIC 0
|
||||
|
@ -65,24 +95,39 @@ static int mark_scope_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int mark_scope_table_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Scope_Table));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_scope_table_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Scheme_Scope_Table *m = (Scheme_Scope_Table *)p;
|
||||
gcMARK2(m->simple_scopes, gc);
|
||||
gcMARK2(m->multi_scopes, gc);
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Scope_Table));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_scope_table_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Scheme_Scope_Table *m = (Scheme_Scope_Table *)p;
|
||||
gcFIXUP2(m->simple_scopes, gc);
|
||||
gcFIXUP2(m->multi_scopes, gc);
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Scope_Table));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_scope_table_IS_ATOMIC 0
|
||||
|
@ -90,26 +135,41 @@ static int mark_scope_table_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int mark_propagate_table_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Propagate_Table));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_propagate_table_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Scheme_Propagate_Table *m = (Scheme_Propagate_Table *)p;
|
||||
mark_scope_table_MARK(&m->st, gc);
|
||||
gcMARK2(m->prev, gc);
|
||||
gcMARK2(m->phase_shift, gc);
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Propagate_Table));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_propagate_table_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Scheme_Propagate_Table *m = (Scheme_Propagate_Table *)p;
|
||||
mark_scope_table_FIXUP(&m->st, gc);
|
||||
gcFIXUP2(m->prev, gc);
|
||||
gcFIXUP2(m->phase_shift, gc);
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Propagate_Table));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_propagate_table_IS_ATOMIC 0
|
||||
|
|
|
@ -1,12 +1,16 @@
|
|||
/* >>>> Generated by mkmark.rkt from mzmarksrc.c <<<< */
|
||||
|
||||
static int mark_parameterization_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS((sizeof(Scheme_Parameterization)
|
||||
+ ((max_configs - mzFLEX_DELTA) * sizeof(Scheme_Object*))));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_parameterization_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Scheme_Parameterization *c = (Scheme_Parameterization *)p;
|
||||
int i;
|
||||
|
||||
|
@ -15,12 +19,18 @@ static int mark_parameterization_MARK(void *p, struct NewGC *gc) {
|
|||
}
|
||||
gcMARK2(c->extensions, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS((sizeof(Scheme_Parameterization)
|
||||
+ ((max_configs - mzFLEX_DELTA) * sizeof(Scheme_Object*))));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_parameterization_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Scheme_Parameterization *c = (Scheme_Parameterization *)p;
|
||||
int i;
|
||||
|
||||
|
@ -29,9 +39,14 @@ static int mark_parameterization_FIXUP(void *p, struct NewGC *gc) {
|
|||
}
|
||||
gcFIXUP2(c->extensions, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS((sizeof(Scheme_Parameterization)
|
||||
+ ((max_configs - mzFLEX_DELTA) * sizeof(Scheme_Object*))));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_parameterization_IS_ATOMIC 0
|
||||
|
@ -39,24 +54,39 @@ static int mark_parameterization_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int mark_config_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Config));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_config_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Scheme_Config *config = (Scheme_Config *)p;
|
||||
gcMARK2(config->ht, gc);
|
||||
gcMARK2(config->root, gc);
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Config));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_config_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Scheme_Config *config = (Scheme_Config *)p;
|
||||
gcFIXUP2(config->ht, gc);
|
||||
gcFIXUP2(config->root, gc);
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Config));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_config_IS_ATOMIC 0
|
||||
|
@ -64,30 +94,45 @@ static int mark_config_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int mark_will_executor_val_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(WillExecutor));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_will_executor_val_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
WillExecutor *e = (WillExecutor *)p;
|
||||
|
||||
gcMARK2(e->sema, gc);
|
||||
gcMARK2(e->first, gc);
|
||||
gcMARK2(e->last, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(WillExecutor));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_will_executor_val_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
WillExecutor *e = (WillExecutor *)p;
|
||||
|
||||
gcFIXUP2(e->sema, gc);
|
||||
gcFIXUP2(e->first, gc);
|
||||
gcFIXUP2(e->last, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(WillExecutor));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_will_executor_val_IS_ATOMIC 0
|
||||
|
@ -95,11 +140,15 @@ static int mark_will_executor_val_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int mark_custodian_val_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Custodian));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_custodian_val_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Scheme_Custodian *m = (Scheme_Custodian *)p;
|
||||
|
||||
gcMARK2(m->boxes, gc);
|
||||
|
@ -117,11 +166,17 @@ static int mark_custodian_val_MARK(void *p, struct NewGC *gc) {
|
|||
|
||||
gcMARK2(m->cust_boxes, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Custodian));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_custodian_val_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Scheme_Custodian *m = (Scheme_Custodian *)p;
|
||||
|
||||
gcFIXUP2(m->boxes, gc);
|
||||
|
@ -139,8 +194,13 @@ static int mark_custodian_val_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
gcFIXUP2(m->cust_boxes, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Custodian));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_custodian_val_IS_ATOMIC 0
|
||||
|
@ -148,11 +208,15 @@ static int mark_custodian_val_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int mark_custodian_box_val_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Custodian_Box));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_custodian_box_val_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Scheme_Custodian_Box *b = (Scheme_Custodian_Box *)p;
|
||||
int sd = ((Scheme_Custodian *)GC_resolve2(b->cust, gc))->shut_down;
|
||||
|
||||
|
@ -161,11 +225,17 @@ static int mark_custodian_box_val_MARK(void *p, struct NewGC *gc) {
|
|||
gcMARK2(b->v, gc);
|
||||
}
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Custodian_Box));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_custodian_box_val_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Scheme_Custodian_Box *b = (Scheme_Custodian_Box *)p;
|
||||
int sd = ((Scheme_Custodian *)GC_resolve2(b->cust, gc))->shut_down;
|
||||
|
||||
|
@ -174,8 +244,13 @@ static int mark_custodian_box_val_FIXUP(void *p, struct NewGC *gc) {
|
|||
gcFIXUP2(b->v, gc);
|
||||
}
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Custodian_Box));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_custodian_box_val_IS_ATOMIC 0
|
||||
|
@ -183,26 +258,41 @@ static int mark_custodian_box_val_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int mark_thread_hop_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Thread_Custodian_Hop));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_thread_hop_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Scheme_Thread_Custodian_Hop *hop = (Scheme_Thread_Custodian_Hop *)p;
|
||||
|
||||
gcMARK2(hop->p, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Thread_Custodian_Hop));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_thread_hop_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Scheme_Thread_Custodian_Hop *hop = (Scheme_Thread_Custodian_Hop *)p;
|
||||
|
||||
gcFIXUP2(hop->p, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Thread_Custodian_Hop));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_thread_hop_IS_ATOMIC 0
|
||||
|
@ -210,11 +300,15 @@ static int mark_thread_hop_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int mark_param_data_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(ParamData));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_param_data_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
ParamData *d = (ParamData *)p;
|
||||
|
||||
gcMARK2(d->key, gc);
|
||||
|
@ -222,11 +316,17 @@ static int mark_param_data_MARK(void *p, struct NewGC *gc) {
|
|||
gcMARK2(d->extract_guard, gc);
|
||||
gcMARK2(d->defcell, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(ParamData));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_param_data_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
ParamData *d = (ParamData *)p;
|
||||
|
||||
gcFIXUP2(d->key, gc);
|
||||
|
@ -234,8 +334,13 @@ static int mark_param_data_FIXUP(void *p, struct NewGC *gc) {
|
|||
gcFIXUP2(d->extract_guard, gc);
|
||||
gcFIXUP2(d->defcell, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(ParamData));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_param_data_IS_ATOMIC 0
|
||||
|
@ -243,11 +348,15 @@ static int mark_param_data_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int mark_will_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(ActiveWill));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_will_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
ActiveWill *w = (ActiveWill *)p;
|
||||
|
||||
gcMARK2(w->o, gc);
|
||||
|
@ -255,11 +364,17 @@ static int mark_will_MARK(void *p, struct NewGC *gc) {
|
|||
gcMARK2(w->w, gc);
|
||||
gcMARK2(w->next, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(ActiveWill));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_will_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
ActiveWill *w = (ActiveWill *)p;
|
||||
|
||||
gcFIXUP2(w->o, gc);
|
||||
|
@ -267,8 +382,13 @@ static int mark_will_FIXUP(void *p, struct NewGC *gc) {
|
|||
gcFIXUP2(w->w, gc);
|
||||
gcFIXUP2(w->next, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(ActiveWill));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_will_IS_ATOMIC 0
|
||||
|
@ -276,18 +396,33 @@ static int mark_will_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int mark_evt_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Evt));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_evt_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Evt));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_evt_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Evt));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_evt_IS_ATOMIC 1
|
||||
|
@ -295,11 +430,15 @@ static int mark_evt_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int mark_syncing_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Syncing));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_syncing_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Syncing *w = (Syncing *)p;
|
||||
|
||||
gcMARK2(w->set, gc);
|
||||
|
@ -310,11 +449,17 @@ static int mark_syncing_MARK(void *p, struct NewGC *gc) {
|
|||
gcMARK2(w->disable_break, gc);
|
||||
gcMARK2(w->thread, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Syncing));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_syncing_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Syncing *w = (Syncing *)p;
|
||||
|
||||
gcFIXUP2(w->set, gc);
|
||||
|
@ -325,8 +470,13 @@ static int mark_syncing_FIXUP(void *p, struct NewGC *gc) {
|
|||
gcFIXUP2(w->disable_break, gc);
|
||||
gcFIXUP2(w->thread, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Syncing));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_syncing_IS_ATOMIC 0
|
||||
|
@ -334,28 +484,43 @@ static int mark_syncing_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int mark_evt_set_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Evt_Set));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_evt_set_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Evt_Set *w = (Evt_Set *)p;
|
||||
|
||||
gcMARK2(w->ws, gc);
|
||||
gcMARK2(w->argv, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Evt_Set));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_evt_set_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Evt_Set *w = (Evt_Set *)p;
|
||||
|
||||
gcFIXUP2(w->ws, gc);
|
||||
gcFIXUP2(w->argv, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Evt_Set));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_evt_set_IS_ATOMIC 0
|
||||
|
@ -363,11 +528,15 @@ static int mark_evt_set_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int mark_thread_set_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Thread_Set));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_thread_set_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Scheme_Thread_Set *ts = (Scheme_Thread_Set *)p;
|
||||
|
||||
gcMARK2(ts->parent, gc);
|
||||
|
@ -377,11 +546,17 @@ static int mark_thread_set_MARK(void *p, struct NewGC *gc) {
|
|||
gcMARK2(ts->search_start, gc);
|
||||
gcMARK2(ts->current, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Thread_Set));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_thread_set_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Scheme_Thread_Set *ts = (Scheme_Thread_Set *)p;
|
||||
|
||||
gcFIXUP2(ts->parent, gc);
|
||||
|
@ -391,8 +566,13 @@ static int mark_thread_set_FIXUP(void *p, struct NewGC *gc) {
|
|||
gcFIXUP2(ts->search_start, gc);
|
||||
gcFIXUP2(ts->current, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Thread_Set));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_thread_set_IS_ATOMIC 0
|
||||
|
@ -400,26 +580,41 @@ static int mark_thread_set_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int mark_thread_cell_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Thread_Cell));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_thread_cell_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Thread_Cell *c = (Thread_Cell *)p;
|
||||
|
||||
gcMARK2(c->def_val, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Thread_Cell));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_thread_cell_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Thread_Cell *c = (Thread_Cell *)p;
|
||||
|
||||
gcFIXUP2(c->def_val, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Thread_Cell));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_thread_cell_IS_ATOMIC 0
|
||||
|
@ -427,28 +622,43 @@ static int mark_thread_cell_FIXUP(void *p, struct NewGC *gc) {
|
|||
|
||||
|
||||
static int mark_plumber_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Plumber));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_plumber_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Scheme_Plumber *pl = (Scheme_Plumber *)p;
|
||||
|
||||
gcMARK2(pl->handles, gc);
|
||||
gcMARK2(pl->weak_handles, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Plumber));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_plumber_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Scheme_Plumber *pl = (Scheme_Plumber *)p;
|
||||
|
||||
gcFIXUP2(pl->handles, gc);
|
||||
gcFIXUP2(pl->weak_handles, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Plumber));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_plumber_IS_ATOMIC 0
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,28 +1,43 @@
|
|||
/* >>>> Generated by mkmark.rkt from mzmarksrc.c <<<< */
|
||||
|
||||
static int mark_validate_clearing_SIZE(void *p, struct NewGC *gc) {
|
||||
return
|
||||
#ifndef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
gcBYTES_TO_WORDS(sizeof(Validate_Clearing));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_validate_clearing_MARK(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_MARK_PROCEDURE_NEEDED
|
||||
Validate_Clearing *vc = (Validate_Clearing *)p;
|
||||
|
||||
gcMARK2(vc->stack, gc);
|
||||
gcMARK2(vc->ncstack, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Validate_Clearing));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int mark_validate_clearing_FIXUP(void *p, struct NewGC *gc) {
|
||||
#ifndef GC_NO_FIXUP_PROCEDURE_NEEDED
|
||||
Validate_Clearing *vc = (Validate_Clearing *)p;
|
||||
|
||||
gcFIXUP2(vc->stack, gc);
|
||||
gcFIXUP2(vc->ncstack, gc);
|
||||
|
||||
# ifdef GC_NO_SIZE_NEEDED_FROM_PROCS
|
||||
return 0;
|
||||
# else
|
||||
return
|
||||
gcBYTES_TO_WORDS(sizeof(Validate_Clearing));
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#define mark_validate_clearing_IS_ATOMIC 0
|
||||
|
|
|
@ -565,11 +565,9 @@ bstring_obj {
|
|||
}
|
||||
|
||||
symbol_obj {
|
||||
Scheme_Symbol *s = (Scheme_Symbol *)p;
|
||||
|
||||
mark:
|
||||
size:
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Symbol) + s->len + 1 - mzFLEX4_DELTA);
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Symbol) + ((Scheme_Symbol *)p)->len + 1 - mzFLEX4_DELTA);
|
||||
}
|
||||
|
||||
cons_cell {
|
||||
|
@ -597,31 +595,25 @@ vector_obj {
|
|||
}
|
||||
|
||||
fxvector_obj {
|
||||
Scheme_Vector *vec = (Scheme_Vector *)p;
|
||||
|
||||
mark:
|
||||
size:
|
||||
gcBYTES_TO_WORDS((sizeof(Scheme_Vector)
|
||||
+ ((vec->size - mzFLEX_DELTA) * sizeof(Scheme_Object *))));
|
||||
+ ((((Scheme_Vector *)p)->size - mzFLEX_DELTA) * sizeof(Scheme_Object *))));
|
||||
}
|
||||
|
||||
flvector_obj {
|
||||
Scheme_Double_Vector *vec = (Scheme_Double_Vector *)p;
|
||||
|
||||
mark:
|
||||
size:
|
||||
gcBYTES_TO_WORDS((sizeof(Scheme_Double_Vector)
|
||||
+ ((vec->size - mzFLEX_DELTA) * sizeof(double))));
|
||||
+ ((((Scheme_Double_Vector *)p)->size - mzFLEX_DELTA) * sizeof(double))));
|
||||
}
|
||||
|
||||
#ifdef MZ_LONG_DOUBLE
|
||||
extflvector_obj {
|
||||
Scheme_Long_Double_Vector *vec = (Scheme_Long_Double_Vector *)p;
|
||||
|
||||
mark:
|
||||
size:
|
||||
gcBYTES_TO_WORDS((sizeof(Scheme_Long_Double_Vector)
|
||||
+ ((vec->size - mzFLEX_DELTA) * sizeof(long double))));
|
||||
+ ((((Scheme_Long_Double_Vector *)p)->size - mzFLEX_DELTA) * sizeof(long double))));
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -771,8 +763,6 @@ thread_val {
|
|||
|
||||
gcMARK2(pr->self_for_proc_chaperone, gc);
|
||||
|
||||
gcMARK2(pr->list_stack, gc);
|
||||
|
||||
gcMARK2(pr->kill_data, gc);
|
||||
gcMARK2(pr->private_kill_data, gc);
|
||||
gcMARK2(pr->private_kill_next, gc);
|
||||
|
@ -1270,6 +1260,8 @@ mark_comp_env {
|
|||
gcMARK2(e->prefix, gc);
|
||||
gcMARK2(e->next, gc);
|
||||
gcMARK2(e->scopes, gc);
|
||||
gcMARK2(e->value_name, gc);
|
||||
gcMARK2(e->observer, gc);
|
||||
gcMARK2(e->binders, gc);
|
||||
gcMARK2(e->bindings, gc);
|
||||
gcMARK2(e->vals, gc);
|
||||
|
@ -1429,17 +1421,6 @@ END optimize;
|
|||
|
||||
START eval;
|
||||
|
||||
mark_comp_info {
|
||||
mark:
|
||||
Scheme_Compile_Info *i = (Scheme_Compile_Info *)p;
|
||||
|
||||
gcMARK2(i->value_name, gc);
|
||||
gcMARK2(i->observer, gc);
|
||||
|
||||
size:
|
||||
gcBYTES_TO_WORDS(sizeof(Scheme_Compile_Info));
|
||||
}
|
||||
|
||||
mark_saved_stack {
|
||||
mark:
|
||||
Scheme_Saved_Stack *saved = (Scheme_Saved_Stack *)p;
|
||||
|
|
|
@ -183,8 +183,6 @@ typedef struct ReadParams {
|
|||
} ReadParams;
|
||||
|
||||
#define THREAD_FOR_LOCALS scheme_current_thread
|
||||
#define local_list_stack (THREAD_FOR_LOCALS->list_stack)
|
||||
#define local_list_stack_pos (THREAD_FOR_LOCALS->list_stack_pos)
|
||||
|
||||
static Scheme_Object *read_list(Scheme_Object *port, Scheme_Object *stxsrc,
|
||||
intptr_t line, intptr_t col, intptr_t pos,
|
||||
|
@ -560,51 +558,6 @@ void scheme_init_variable_references_constants()
|
|||
}
|
||||
|
||||
|
||||
static Scheme_Simple_Object *malloc_list_stack()
|
||||
{
|
||||
#ifdef MZ_PRECISE_GC
|
||||
intptr_t sz = sizeof(Scheme_Simple_Object) * NUM_CELLS_PER_STACK;
|
||||
Scheme_Simple_Object *r;
|
||||
|
||||
if (sz < GC_malloc_stays_put_threshold()) {
|
||||
sz = GC_malloc_stays_put_threshold();
|
||||
while (sz % sizeof(Scheme_Simple_Object)) {
|
||||
sz++;
|
||||
}
|
||||
}
|
||||
|
||||
r = (Scheme_Simple_Object *)GC_malloc_array_tagged(sz);
|
||||
|
||||
/* Must set the tag on the first element: */
|
||||
r[0].iso.so.type = scheme_pair_type;
|
||||
return r;
|
||||
#else
|
||||
return MALLOC_N_RT(Scheme_Simple_Object, NUM_CELLS_PER_STACK);
|
||||
#endif
|
||||
}
|
||||
|
||||
void scheme_alloc_list_stack(Scheme_Thread *p)
|
||||
{
|
||||
Scheme_Simple_Object *sa;
|
||||
p->list_stack_pos = 0;
|
||||
sa = malloc_list_stack();
|
||||
p->list_stack = sa;
|
||||
}
|
||||
|
||||
void scheme_clean_list_stack(Scheme_Thread *p)
|
||||
{
|
||||
if (p->list_stack) {
|
||||
memset(p->list_stack + p->list_stack_pos, 0,
|
||||
(NUM_CELLS_PER_STACK - p->list_stack_pos) * sizeof(Scheme_Simple_Object));
|
||||
#ifdef MZ_PRECISE_GC
|
||||
if (!p->list_stack_pos) {
|
||||
/* Must set the tag on the first element: */
|
||||
p->list_stack[0].iso.so.type = scheme_pair_type;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
static void track_indentation(Scheme_Object *indentation, int line, int col)
|
||||
{
|
||||
if (!SCHEME_NULLP(indentation)) {
|
||||
|
|
|
@ -412,7 +412,6 @@ MZ_EXTERN void *GC_malloc_atomic(size_t size_in_bytes);
|
|||
MZ_EXTERN void *GC_malloc_one_tagged(size_t size_in_bytes);
|
||||
MZ_EXTERN void *GC_malloc_atomic_uncollectable(size_t size_in_bytes);
|
||||
MZ_EXTERN void *scheme_malloc_uncollectable(size_t size_in_bytes);
|
||||
MZ_EXTERN void *GC_malloc_array_tagged(size_t size_in_bytes);
|
||||
MZ_EXTERN void *GC_malloc_allow_interior(size_t size_in_bytes);
|
||||
MZ_EXTERN void *GC_malloc_atomic_allow_interior(size_t size_in_bytes);
|
||||
MZ_EXTERN void *GC_malloc_tagged_allow_interior(size_t size_in_bytes);
|
||||
|
|
|
@ -320,7 +320,6 @@ void *(*GC_malloc_atomic)(size_t size_in_bytes);
|
|||
void *(*GC_malloc_one_tagged)(size_t size_in_bytes);
|
||||
void *(*GC_malloc_atomic_uncollectable)(size_t size_in_bytes);
|
||||
void *(*scheme_malloc_uncollectable)(size_t size_in_bytes);
|
||||
void *(*GC_malloc_array_tagged)(size_t size_in_bytes);
|
||||
void *(*GC_malloc_allow_interior)(size_t size_in_bytes);
|
||||
void *(*GC_malloc_atomic_allow_interior)(size_t size_in_bytes);
|
||||
void *(*GC_malloc_tagged_allow_interior)(size_t size_in_bytes);
|
||||
|
|
|
@ -223,7 +223,6 @@
|
|||
scheme_extension_table->GC_malloc_one_tagged = GC_malloc_one_tagged;
|
||||
scheme_extension_table->GC_malloc_atomic_uncollectable = GC_malloc_atomic_uncollectable;
|
||||
scheme_extension_table->scheme_malloc_uncollectable = scheme_malloc_uncollectable;
|
||||
scheme_extension_table->GC_malloc_array_tagged = GC_malloc_array_tagged;
|
||||
scheme_extension_table->GC_malloc_allow_interior = GC_malloc_allow_interior;
|
||||
scheme_extension_table->GC_malloc_atomic_allow_interior = GC_malloc_atomic_allow_interior;
|
||||
scheme_extension_table->GC_malloc_tagged_allow_interior = GC_malloc_tagged_allow_interior;
|
||||
|
|
|
@ -223,7 +223,6 @@
|
|||
#define GC_malloc_one_tagged (scheme_extension_table->GC_malloc_one_tagged)
|
||||
#define GC_malloc_atomic_uncollectable (scheme_extension_table->GC_malloc_atomic_uncollectable)
|
||||
#define scheme_malloc_uncollectable (scheme_extension_table->scheme_malloc_uncollectable)
|
||||
#define GC_malloc_array_tagged (scheme_extension_table->GC_malloc_array_tagged)
|
||||
#define GC_malloc_allow_interior (scheme_extension_table->GC_malloc_allow_interior)
|
||||
#define GC_malloc_atomic_allow_interior (scheme_extension_table->GC_malloc_atomic_allow_interior)
|
||||
#define GC_malloc_tagged_allow_interior (scheme_extension_table->GC_malloc_tagged_allow_interior)
|
||||
|
|
|
@ -112,7 +112,6 @@ extern XFORM_NONGCING int scheme_intern_prim_opt_flags(int);
|
|||
#ifdef MZTAG_REQUIRED
|
||||
# define scheme_malloc_rt(x) scheme_malloc_tagged(x)
|
||||
# define MALLOC_ONE_RT(x) MALLOC_ONE_TAGGED(x)
|
||||
# define MALLOC_N_RT(x,c) MALLOC_N_TAGGED(x,c)
|
||||
# define MALLOC_ONE_WEAK(x) _MALLOC_N(x, 1, scheme_malloc)
|
||||
# define MALLOC_N_WEAK(x,c) _MALLOC_N(x, c, scheme_malloc)
|
||||
# define MALLOC_ONE_TAGGED_WEAK(x) _MALLOC_N(x, 1, scheme_malloc_tagged)
|
||||
|
@ -120,7 +119,6 @@ extern XFORM_NONGCING int scheme_intern_prim_opt_flags(int);
|
|||
#else
|
||||
# define scheme_malloc_rt(x) scheme_malloc(x)
|
||||
# define MALLOC_ONE_RT(x) MALLOC_ONE(x)
|
||||
# define MALLOC_N_RT(x,c) MALLOC_N(x,c)
|
||||
# define MALLOC_ONE_WEAK(x) MALLOC_ONE_ATOMIC(x)
|
||||
# define MALLOC_N_WEAK(x,c) MALLOC_N_ATOMIC(x,c)
|
||||
# define MALLOC_ONE_WEAK_RT(x) MALLOC_ONE_WEAK(x)
|
||||
|
@ -2574,6 +2572,9 @@ typedef struct Scheme_Comp_Env
|
|||
|
||||
Scheme_Object *scopes; /* can be NULL, a scope, a scope set, or (cons scope-set nobind-scope) */
|
||||
|
||||
Scheme_Object *value_name; /* propagated down */
|
||||
Scheme_Object *observer; /* parameter's value (to avoid looking up every time) */
|
||||
|
||||
/* local bindings; */
|
||||
mzshort num_bindings; /* number of `values' slots */
|
||||
Scheme_Object **binders; /* identifiers */
|
||||
|
@ -2618,11 +2619,9 @@ typedef struct Scheme_Comp_Env
|
|||
|
||||
typedef struct Scheme_Compile_Expand_Info
|
||||
{
|
||||
MZTAG_IF_REQUIRED
|
||||
/* allocated as atomic */
|
||||
short comp;
|
||||
short comp_flags;
|
||||
Scheme_Object *value_name;
|
||||
Scheme_Object *observer;
|
||||
char dont_mark_local_use;
|
||||
char resolve_module_ids;
|
||||
char pre_unwrapped;
|
||||
|
@ -2970,7 +2969,7 @@ void scheme_merge_undefineds(Scheme_Comp_Env *exp_env, Scheme_Comp_Env *env);
|
|||
|
||||
void scheme_bind_syntaxes(const char *where, Scheme_Object *names, Scheme_Object *a,
|
||||
Scheme_Env *exp_env, Scheme_Object *insp,
|
||||
Scheme_Compile_Expand_Info *rec, int drec,
|
||||
Scheme_Compile_Expand_Info *rec, int drec, Scheme_Object *observer,
|
||||
Scheme_Comp_Env *stx_env, Scheme_Comp_Env *rhs_env,
|
||||
int *_pos, Scheme_Object *rename_rib, int replace_value);
|
||||
int scheme_is_sub_env(Scheme_Comp_Env *stx_env, Scheme_Comp_Env *env);
|
||||
|
@ -3130,7 +3129,7 @@ void *scheme_module_run_finish(Scheme_Env *menv, Scheme_Env *env);
|
|||
void *scheme_module_exprun_finish(Scheme_Env *menv, int set_ns);
|
||||
void *scheme_module_start_finish(struct Start_Module_Args *a);
|
||||
|
||||
Scheme_Object *scheme_build_closure_name(Scheme_Object *code, Scheme_Compile_Info *rec, int drec);
|
||||
Scheme_Object *scheme_build_closure_name(Scheme_Object *code, Scheme_Comp_Env *env);
|
||||
|
||||
#define SCHEME_SYNTAX(obj) SCHEME_PTR1_VAL(obj)
|
||||
#define SCHEME_SYNTAX_EXP(obj) SCHEME_PTR2_VAL(obj)
|
||||
|
|
|
@ -233,74 +233,73 @@ enum {
|
|||
scheme_rt_resolve_info, /* 205 */
|
||||
scheme_rt_unresolve_info, /* 206 */
|
||||
scheme_rt_optimize_info, /* 207 */
|
||||
scheme_rt_compile_info, /* 208 */
|
||||
scheme_rt_cont_mark, /* 209 */
|
||||
scheme_rt_saved_stack, /* 210 */
|
||||
scheme_rt_reply_item, /* 211 */
|
||||
scheme_rt_closure_info, /* 212 */
|
||||
scheme_rt_overflow, /* 213 */
|
||||
scheme_rt_overflow_jmp, /* 214 */
|
||||
scheme_rt_meta_cont, /* 215 */
|
||||
scheme_rt_dyn_wind_cell, /* 216 */
|
||||
scheme_rt_dyn_wind_info, /* 217 */
|
||||
scheme_rt_dyn_wind, /* 218 */
|
||||
scheme_rt_dup_check, /* 219 */
|
||||
scheme_rt_thread_memory, /* 220 */
|
||||
scheme_rt_input_file, /* 221 */
|
||||
scheme_rt_input_fd, /* 222 */
|
||||
scheme_rt_oskit_console_input, /* 223 */
|
||||
scheme_rt_tested_input_file, /* 224 */
|
||||
scheme_rt_tested_output_file, /* 225 */
|
||||
scheme_rt_indexed_string, /* 226 */
|
||||
scheme_rt_output_file, /* 227 */
|
||||
scheme_rt_load_handler_data, /* 228 */
|
||||
scheme_rt_pipe, /* 229 */
|
||||
scheme_rt_beos_process, /* 230 */
|
||||
scheme_rt_system_child, /* 231 */
|
||||
scheme_rt_tcp, /* 232 */
|
||||
scheme_rt_write_data, /* 233 */
|
||||
scheme_rt_tcp_select_info, /* 234 */
|
||||
scheme_rt_param_data, /* 235 */
|
||||
scheme_rt_will, /* 236 */
|
||||
scheme_rt_linker_name, /* 237 */
|
||||
scheme_rt_param_map, /* 238 */
|
||||
scheme_rt_finalization, /* 239 */
|
||||
scheme_rt_finalizations, /* 240 */
|
||||
scheme_rt_cpp_object, /* 241 */
|
||||
scheme_rt_cpp_array_object, /* 242 */
|
||||
scheme_rt_stack_object, /* 243 */
|
||||
scheme_rt_preallocated_object, /* 244 */
|
||||
scheme_thread_hop_type, /* 245 */
|
||||
scheme_rt_srcloc, /* 246 */
|
||||
scheme_rt_evt, /* 247 */
|
||||
scheme_rt_syncing, /* 248 */
|
||||
scheme_rt_comp_prefix, /* 249 */
|
||||
scheme_rt_user_input, /* 250 */
|
||||
scheme_rt_user_output, /* 251 */
|
||||
scheme_rt_compact_port, /* 252 */
|
||||
scheme_rt_read_special_dw, /* 253 */
|
||||
scheme_rt_regwork, /* 254 */
|
||||
scheme_rt_rx_lazy_string, /* 255 */
|
||||
scheme_rt_buf_holder, /* 256 */
|
||||
scheme_rt_parameterization, /* 257 */
|
||||
scheme_rt_print_params, /* 258 */
|
||||
scheme_rt_read_params, /* 259 */
|
||||
scheme_rt_native_code, /* 260 */
|
||||
scheme_rt_native_code_plus_case, /* 261 */
|
||||
scheme_rt_jitter_data, /* 262 */
|
||||
scheme_rt_module_exports, /* 263 */
|
||||
scheme_rt_delay_load_info, /* 264 */
|
||||
scheme_rt_marshal_info, /* 265 */
|
||||
scheme_rt_unmarshal_info, /* 266 */
|
||||
scheme_rt_runstack, /* 267 */
|
||||
scheme_rt_sfs_info, /* 268 */
|
||||
scheme_rt_validate_clearing, /* 269 */
|
||||
scheme_rt_lightweight_cont, /* 270 */
|
||||
scheme_rt_export_info, /* 271 */
|
||||
scheme_rt_cont_jmp, /* 272 */
|
||||
scheme_rt_letrec_check_frame, /* 273 */
|
||||
scheme_rt_cont_mark, /* 208 */
|
||||
scheme_rt_saved_stack, /* 209 */
|
||||
scheme_rt_reply_item, /* 210 */
|
||||
scheme_rt_closure_info, /* 211 */
|
||||
scheme_rt_overflow, /* 212 */
|
||||
scheme_rt_overflow_jmp, /* 213 */
|
||||
scheme_rt_meta_cont, /* 214 */
|
||||
scheme_rt_dyn_wind_cell, /* 215 */
|
||||
scheme_rt_dyn_wind_info, /* 216 */
|
||||
scheme_rt_dyn_wind, /* 217 */
|
||||
scheme_rt_dup_check, /* 218 */
|
||||
scheme_rt_thread_memory, /* 219 */
|
||||
scheme_rt_input_file, /* 220 */
|
||||
scheme_rt_input_fd, /* 221 */
|
||||
scheme_rt_oskit_console_input, /* 222 */
|
||||
scheme_rt_tested_input_file, /* 223 */
|
||||
scheme_rt_tested_output_file, /* 224 */
|
||||
scheme_rt_indexed_string, /* 225 */
|
||||
scheme_rt_output_file, /* 226 */
|
||||
scheme_rt_load_handler_data, /* 227 */
|
||||
scheme_rt_pipe, /* 228 */
|
||||
scheme_rt_beos_process, /* 229 */
|
||||
scheme_rt_system_child, /* 230 */
|
||||
scheme_rt_tcp, /* 231 */
|
||||
scheme_rt_write_data, /* 232 */
|
||||
scheme_rt_tcp_select_info, /* 233 */
|
||||
scheme_rt_param_data, /* 234 */
|
||||
scheme_rt_will, /* 235 */
|
||||
scheme_rt_linker_name, /* 236 */
|
||||
scheme_rt_param_map, /* 237 */
|
||||
scheme_rt_finalization, /* 238 */
|
||||
scheme_rt_finalizations, /* 239 */
|
||||
scheme_rt_cpp_object, /* 240 */
|
||||
scheme_rt_cpp_array_object, /* 241 */
|
||||
scheme_rt_stack_object, /* 242 */
|
||||
scheme_rt_preallocated_object, /* 243 */
|
||||
scheme_thread_hop_type, /* 244 */
|
||||
scheme_rt_srcloc, /* 245 */
|
||||
scheme_rt_evt, /* 246 */
|
||||
scheme_rt_syncing, /* 247 */
|
||||
scheme_rt_comp_prefix, /* 248 */
|
||||
scheme_rt_user_input, /* 249 */
|
||||
scheme_rt_user_output, /* 250 */
|
||||
scheme_rt_compact_port, /* 251 */
|
||||
scheme_rt_read_special_dw, /* 252 */
|
||||
scheme_rt_regwork, /* 253 */
|
||||
scheme_rt_rx_lazy_string, /* 254 */
|
||||
scheme_rt_buf_holder, /* 255 */
|
||||
scheme_rt_parameterization, /* 256 */
|
||||
scheme_rt_print_params, /* 257 */
|
||||
scheme_rt_read_params, /* 258 */
|
||||
scheme_rt_native_code, /* 259 */
|
||||
scheme_rt_native_code_plus_case, /* 260 */
|
||||
scheme_rt_jitter_data, /* 261 */
|
||||
scheme_rt_module_exports, /* 262 */
|
||||
scheme_rt_delay_load_info, /* 263 */
|
||||
scheme_rt_marshal_info, /* 264 */
|
||||
scheme_rt_unmarshal_info, /* 265 */
|
||||
scheme_rt_runstack, /* 266 */
|
||||
scheme_rt_sfs_info, /* 267 */
|
||||
scheme_rt_validate_clearing, /* 268 */
|
||||
scheme_rt_lightweight_cont, /* 269 */
|
||||
scheme_rt_export_info, /* 270 */
|
||||
scheme_rt_cont_jmp, /* 271 */
|
||||
scheme_rt_letrec_check_frame, /* 272 */
|
||||
#endif
|
||||
scheme_deferred_expr_type, /* 274 */
|
||||
scheme_deferred_expr_type, /* 273 */
|
||||
|
||||
_scheme_last_type_
|
||||
};
|
||||
|
|
|
@ -2413,8 +2413,6 @@ static Scheme_Thread *make_thread(Scheme_Config *config,
|
|||
|
||||
process->ran_some = 1;
|
||||
|
||||
process->list_stack = NULL;
|
||||
|
||||
scheme_gmp_tls_init(process->gmp_tls);
|
||||
|
||||
if (prefix) {
|
||||
|
@ -2946,8 +2944,6 @@ static void thread_is_dead(Scheme_Thread *r)
|
|||
r->suspended_box = NULL;
|
||||
r->resumed_box = NULL;
|
||||
|
||||
r->list_stack = NULL;
|
||||
|
||||
r->t_set_parent = NULL;
|
||||
r->dw = NULL;
|
||||
r->init_config = NULL;
|
||||
|
@ -3049,11 +3045,6 @@ static void remove_thread(Scheme_Thread *r)
|
|||
r->ku.multiple.array = NULL;
|
||||
r->values_buffer = NULL;
|
||||
|
||||
#ifndef SENORA_GC_NO_FREE
|
||||
if (r->list_stack)
|
||||
GC_free(r->list_stack);
|
||||
#endif
|
||||
|
||||
thread_is_dead(r);
|
||||
|
||||
/* In case we kill a thread while in a bignum operation: */
|
||||
|
@ -3530,9 +3521,6 @@ Scheme_Object *scheme_call_as_nested_thread(int argc, Scheme_Object *argv[], voi
|
|||
}
|
||||
np->tail_buffer_size = p->tail_buffer_size;
|
||||
|
||||
np->list_stack = p->list_stack;
|
||||
np->list_stack_pos = p->list_stack_pos;
|
||||
|
||||
scheme_gmp_tls_init(np->gmp_tls);
|
||||
|
||||
/* np->prev = NULL; - 0ed by allocation */
|
||||
|
@ -9018,9 +9006,6 @@ static void prepare_thread_for_GC(Scheme_Object *t)
|
|||
}
|
||||
|
||||
p->spare_runstack = NULL;
|
||||
|
||||
/* zero ununsed part of list stack */
|
||||
scheme_clean_list_stack(p);
|
||||
}
|
||||
|
||||
void scheme_prepare_this_thread_for_GC(Scheme_Thread *p)
|
||||
|
|
Loading…
Reference in New Issue
Block a user