summaryrefslogtreecommitdiffstats
path: root/match.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2010-01-24 21:23:02 -0800
committerKaz Kylheku <kaz@kylheku.com>2010-01-24 21:23:02 -0800
commit5ebc3de217c0601355b2df86ae26421264fe7c5e (patch)
tree9317de4b46e08bbc578ef10a4d1e7cb11dc2bb66 /match.c
parentc7e42d7f1a4d7bea93090c826e7cf5de19c3061b (diff)
downloadtxr-5ebc3de217c0601355b2df86ae26421264fe7c5e.tar.gz
txr-5ebc3de217c0601355b2df86ae26421264fe7c5e.tar.bz2
txr-5ebc3de217c0601355b2df86ae26421264fe7c5e.zip
* match.c (match_files): Workaround for GC issue
discovered on Red Hat EL 4 with gcc 3.4.3. In the collect loop, set car(success) to nil. Somehow the generated code hangs on to the last matching position for a regex, preventing GC.
Diffstat (limited to 'match.c')
-rw-r--r--match.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/match.c b/match.c
index 85e65cf0..bf58e416 100644
--- a/match.c
+++ b/match.c
@@ -1256,6 +1256,8 @@ repeat_spec_same_data:
debuglf(spec_linenum, lit("collect consumed entire file"), nao);
data = nil;
}
+
+ *car_l(success) = nil;
} else {
data = rest(data);
data_lineno++;