summaryrefslogtreecommitdiffstats
path: root/gc.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2015-04-24 07:53:25 -0700
committerKaz Kylheku <kaz@kylheku.com>2015-04-24 07:53:25 -0700
commit097b3d2421b040e9e8512275c7c64f19c16615be (patch)
treec1e88fb9e42cb3fbde98968e586024795a712edd /gc.c
parentb360098319ea038521bf6ead9fa3f1a1f9e2288c (diff)
downloadtxr-097b3d2421b040e9e8512275c7c64f19c16615be.tar.gz
txr-097b3d2421b040e9e8512275c7c64f19c16615be.tar.bz2
txr-097b3d2421b040e9e8512275c7c64f19c16615be.zip
Regression: runaway allocation of heaps.
* gc.c (make_obj): Fix regression introduced on 2014-10-18, released in TXR 100. Because make_obj discontinues placing objects into the freshobj_array when the full_gc flag has been set, it is incorrect to allocate another heap when the free list is exhausted and the freshobj_array has room remaining. It has room remaining because it is disused.
Diffstat (limited to 'gc.c')
-rw-r--r--gc.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gc.c b/gc.c
index 799bbf94..53357c0b 100644
--- a/gc.c
+++ b/gc.c
@@ -204,7 +204,7 @@ val make_obj(void)
}
#if CONFIG_GEN_GC
- if (freshobj_idx < FRESHOBJ_VEC_SIZE) {
+ if (!full_gc && freshobj_idx < FRESHOBJ_VEC_SIZE) {
more();
continue;
}