fix custodian-managed-list
for weakly held objects
This commit is contained in:
parent
5e02c55dd9
commit
11939df0f2
|
@ -1626,16 +1626,18 @@ static Scheme_Object *custodian_to_list(int argc, Scheme_Object *argv[])
|
||||||
for (i = m->count, j = 0; i--; ) {
|
for (i = m->count, j = 0; i--; ) {
|
||||||
if (m->boxes[i]) {
|
if (m->boxes[i]) {
|
||||||
o = xCUSTODIAN_FAM(m->boxes[i]);
|
o = xCUSTODIAN_FAM(m->boxes[i]);
|
||||||
|
|
||||||
type = SCHEME_TYPE(o);
|
|
||||||
ex = extractors[type];
|
|
||||||
if (ex) {
|
|
||||||
o = ex(o);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (o) {
|
if (o) {
|
||||||
hold[j] = o;
|
type = SCHEME_TYPE(o);
|
||||||
j++;
|
ex = extractors[type];
|
||||||
|
if (ex) {
|
||||||
|
o = ex(o);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (o) {
|
||||||
|
hold[j] = o;
|
||||||
|
j++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user