fix CGC ephemeron bug
Merge to 5.1.1
(cherry picked from commit 5ae4b00168
)
This commit is contained in:
parent
659cb91c2d
commit
7b604f37c2
|
@ -3259,7 +3259,7 @@ Scheme_Object *scheme_make_ephemeron(Scheme_Object *key, Scheme_Object *val)
|
|||
Scheme_Ephemeron *e;
|
||||
int can_gc = 1;
|
||||
|
||||
if (SCHEME_INTP(val) || !GC_base(val))
|
||||
if (SCHEME_INTP(key) || !GC_base(key))
|
||||
can_gc = 0;
|
||||
|
||||
if (can_gc) {
|
||||
|
@ -3268,12 +3268,12 @@ Scheme_Object *scheme_make_ephemeron(Scheme_Object *key, Scheme_Object *val)
|
|||
e = (Scheme_Ephemeron *)scheme_malloc(sizeof(Scheme_Ephemeron));
|
||||
}
|
||||
e->so.type = scheme_ephemeron_type;
|
||||
e->key = key;
|
||||
e->val = val;
|
||||
if (can_gc) {
|
||||
e->next = ephemerons;
|
||||
ephemerons = e;
|
||||
}
|
||||
e->key = key;
|
||||
e->val = val;
|
||||
|
||||
return (Scheme_Object *)e;
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue
Block a user