summaryrefslogtreecommitdiffstats
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
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.
-rw-r--r--ChangeLog8
-rw-r--r--match.c2
2 files changed, 10 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 695e17a6..44427204 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
2010-01-24 Kaz Kylheku <kkylheku@gmail.com>
+ * 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.
+
+2010-01-24 Kaz Kylheku <kkylheku@gmail.com>
+
* stream.c (vformat_num): Fix bad width calculation.
2010-01-21 Kaz Kylheku <kkylheku@gmail.com>
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++;