summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ChangeLog5
-rw-r--r--src/print.c10
2 files changed, 7 insertions, 8 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index d3fb40197b3..97c51956cf7 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
+2005-12-17 Chong Yidong <cyd@stupidchicken.com>
+
+ * print.c (print_preprocess): Just signal an error if print_depth
+ is exceeded.
+
2005-12-17 Eli Zaretskii <eliz@gnu.org>
* .gdbinit: Set a breakpoint on w32_abort.
diff --git a/src/print.c b/src/print.c
index ed6b402763a..20c359f9b69 100644
--- a/src/print.c
+++ b/src/print.c
@@ -1313,14 +1313,8 @@ print_preprocess (obj)
/* Give up if we go so deep that print_object will get an error. */
/* See similar code in print_object. */
- /* Because print_preprocess "follows" nested lists in a slightly
- different order from print_object, there is a risk of giving up
- too soon. In that case, a deeply nested circular list may cause
- print_object to loop. Using 3 * PRINT_CIRCLE should make this
- possibility negligible, but at some point someone will have to
- sit down and do a more careful analysis. -- cyd */
- if (print_depth >= 3 * PRINT_CIRCLE)
- return;
+ if (print_depth >= PRINT_CIRCLE)
+ error ("Apparently circular structure being printed");
/* Avoid infinite recursion for circular nested structure
in the case where Vprint_circle is nil. */