# HG changeset patch # User Chong Yidong # Date 1134834929 0 # Node ID 5c55209169fcd8f026633481f0a5adf9711f8fc2 # Parent eb9d3a206a25b46ef84ef3348308b05fcf6ab0c2 2005-12-17 Chong Yidong * print.c (print_preprocess): Just signal an error if print_depth is exceeded. diff -r eb9d3a206a25 -r 5c55209169fc src/ChangeLog --- a/src/ChangeLog Sat Dec 17 15:51:00 2005 +0000 +++ b/src/ChangeLog Sat Dec 17 15:55:29 2005 +0000 @@ -1,3 +1,8 @@ +2005-12-17 Chong Yidong + + * print.c (print_preprocess): Just signal an error if print_depth + is exceeded. + 2005-12-17 Eli Zaretskii * .gdbinit: Set a breakpoint on w32_abort. diff -r eb9d3a206a25 -r 5c55209169fc src/print.c --- a/src/print.c Sat Dec 17 15:51:00 2005 +0000 +++ b/src/print.c Sat Dec 17 15:55:29 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. */