clear a cached syntax object
Another potential (but minor in practice) leak
This commit is contained in:
parent
721750c27e
commit
86d5940139
|
@ -4783,8 +4783,13 @@ scheme_compile_expand_expr(Scheme_Object *form, Scheme_Comp_Env *env,
|
||||||
Scheme_Syntax *f;
|
Scheme_Syntax *f;
|
||||||
rec[drec].pre_unwrapped = 1;
|
rec[drec].pre_unwrapped = 1;
|
||||||
f = (Scheme_Syntax *)SCHEME_SYNTAX(var);
|
f = (Scheme_Syntax *)SCHEME_SYNTAX(var);
|
||||||
if (can_recycle_stx && !quick_stx)
|
if (can_recycle_stx && !quick_stx) {
|
||||||
quick_stx = can_recycle_stx;
|
quick_stx = can_recycle_stx;
|
||||||
|
((Scheme_Stx *)quick_stx)->val = NULL;
|
||||||
|
((Scheme_Stx *)quick_stx)->wraps = NULL;
|
||||||
|
((Scheme_Stx *)quick_stx)->u.modinfo_cache = NULL;
|
||||||
|
((Scheme_Stx *)quick_stx)->taints = NULL;
|
||||||
|
}
|
||||||
return f(form, env, rec, drec);
|
return f(form, env, rec, drec);
|
||||||
} else {
|
} else {
|
||||||
name = scheme_stx_taint_disarm(form, NULL);
|
name = scheme_stx_taint_disarm(form, NULL);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user