Mercurial > emacs
diff src/intervals.c @ 37328:9a801971bd7e
(find_interval): Don't rebalance during signal handling.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Thu, 12 Apr 2001 12:13:19 +0000 |
parents | f39ff8270082 |
children | 5f60884970a8 |
line wrap: on
line diff
--- a/src/intervals.c Wed Apr 11 21:53:10 2001 +0000 +++ b/src/intervals.c Thu Apr 12 12:13:19 2001 +0000 @@ -612,7 +612,8 @@ if (relative_position > TOTAL_LENGTH (tree)) abort (); /* Paranoia */ - tree = balance_possible_root_interval (tree); + if (!handling_signal) + tree = balance_possible_root_interval (tree); while (1) { @@ -720,7 +721,9 @@ /* Find the interval containing POS given some non-NULL INTERVAL in the same tree. Note that we need to update interval->position - if we go down the tree. */ + if we go down the tree. + To speed up the process, we assume that the ->position of + I and all its parents is already uptodate. */ INTERVAL update_interval (i, pos) register INTERVAL i;