changeset 67636:b40bbd9c913a

* print.c (print_preprocess): Just signal an error if print_depth is exceeded.
author Chong Yidong <cyd@stupidchicken.com>
date Sat, 17 Dec 2005 15:46:16 +0000
parents 70e76c30ddcc
children eb9d3a206a25
files src/ChangeLog src/print.c
diffstat 2 files changed, 7 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Sat Dec 17 15:45:55 2005 +0000
+++ b/src/ChangeLog	Sat Dec 17 15:46:16 2005 +0000
@@ -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.
--- a/src/print.c	Sat Dec 17 15:45:55 2005 +0000
+++ b/src/print.c	Sat Dec 17 15:46:16 2005 +0000
@@ -1313,14 +1313,8 @@
 
   /* 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.  */