diff options
| author | Chong Yidong | 2005-12-17 15:55:29 +0000 |
|---|---|---|
| committer | Chong Yidong | 2005-12-17 15:55:29 +0000 |
| commit | 6b8dfbf78ad1465947111f85ef2cca792fd39a9f (patch) | |
| tree | 3899170f55f0a7f2d9978f213893a067413ab7a7 | |
| parent | 04df9646f2cc5a6c4a9b5e1e071cbd69c50e6dde (diff) | |
| download | emacs-6b8dfbf78ad1465947111f85ef2cca792fd39a9f.tar.gz emacs-6b8dfbf78ad1465947111f85ef2cca792fd39a9f.zip | |
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 @@ | |||
| 1 | 2005-12-17 Chong Yidong <cyd@stupidchicken.com> | ||
| 2 | |||
| 3 | * print.c (print_preprocess): Just signal an error if print_depth | ||
| 4 | is exceeded. | ||
| 5 | |||
| 1 | 2005-12-17 Eli Zaretskii <eliz@gnu.org> | 6 | 2005-12-17 Eli Zaretskii <eliz@gnu.org> |
| 2 | 7 | ||
| 3 | * .gdbinit: Set a breakpoint on w32_abort. | 8 | * .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) | |||
| 1313 | 1313 | ||
| 1314 | /* Give up if we go so deep that print_object will get an error. */ | 1314 | /* Give up if we go so deep that print_object will get an error. */ |
| 1315 | /* See similar code in print_object. */ | 1315 | /* See similar code in print_object. */ |
| 1316 | /* Because print_preprocess "follows" nested lists in a slightly | 1316 | if (print_depth >= PRINT_CIRCLE) |
| 1317 | different order from print_object, there is a risk of giving up | 1317 | error ("Apparently circular structure being printed"); |
| 1318 | too soon. In that case, a deeply nested circular list may cause | ||
| 1319 | print_object to loop. Using 3 * PRINT_CIRCLE should make this | ||
| 1320 | possibility negligible, but at some point someone will have to | ||
| 1321 | sit down and do a more careful analysis. -- cyd */ | ||
| 1322 | if (print_depth >= 3 * PRINT_CIRCLE) | ||
| 1323 | return; | ||
| 1324 | 1318 | ||
| 1325 | /* Avoid infinite recursion for circular nested structure | 1319 | /* Avoid infinite recursion for circular nested structure |
| 1326 | in the case where Vprint_circle is nil. */ | 1320 | in the case where Vprint_circle is nil. */ |