Mercurial > emacs
comparison src/print.c @ 67638:5c55209169fc
2005-12-17 Chong Yidong <cyd@stupidchicken.com>
* 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:55:29 +0000 |
parents | eb9d3a206a25 |
children | 5e88f41fd520 14a4eb789b45 |
comparison
equal
deleted
inserted
replaced
67637:eb9d3a206a25 | 67638:5c55209169fc |
---|---|
1311 int loop_count = 0; | 1311 int loop_count = 0; |
1312 Lisp_Object halftail; | 1312 Lisp_Object halftail; |
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. */ |
1327 if (NILP (Vprint_circle)) | 1321 if (NILP (Vprint_circle)) |
1328 { | 1322 { |