diff options
| author | Chong Yidong <cyd@stupidchicken.com> | 2005-12-17 15:55:29 +0000 |
|---|---|---|
| committer | Chong Yidong <cyd@stupidchicken.com> | 2005-12-17 15:55:29 +0000 |
| commit | 6b8dfbf78ad1465947111f85ef2cca792fd39a9f (patch) | |
| tree | 3899170f55f0a7f2d9978f213893a067413ab7a7 | |
| parent | 04df9646f2cc5a6c4a9b5e1e071cbd69c50e6dde (diff) | |
| download | emacs-6b8dfbf78ad1465947111f85ef2cca792fd39a9f.tar.gz | |
2005-12-17 Chong Yidong <cyd@stupidchicken.com>
* print.c (print_preprocess): Just signal an error if print_depth
is exceeded.
| -rw-r--r-- | src/ChangeLog | 5 | ||||
| -rw-r--r-- | src/print.c | 10 |
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. */ |
