diff options
| author | Paul Eggert | 2011-04-20 01:04:17 -0700 |
|---|---|---|
| committer | Paul Eggert | 2011-04-20 01:04:17 -0700 |
| commit | c20db43fef1bceb545b05bec2dbf18b1fbb2b533 (patch) | |
| tree | 7d2186191340a2d33fdf47b68c626e51f9608d39 /src | |
| parent | 2538aa2f5f92dd8878652d299e7d6ebabc352075 (diff) | |
| download | emacs-c20db43fef1bceb545b05bec2dbf18b1fbb2b533.tar.gz emacs-c20db43fef1bceb545b05bec2dbf18b1fbb2b533.zip | |
* intervals.h (struct interval): Use EMACS_INT for members
where EMACS_UINT might cause problems. See
<http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html>.
(CHECK_TOTAL_LENGTH): Remove cast to EMACS_INT; no longer needed.
* intervals.c (interval_deletion_adjustment): Now returns EMACS_INT.
All uses changed.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 7 | ||||
| -rw-r--r-- | src/intervals.c | 12 | ||||
| -rw-r--r-- | src/intervals.h | 6 |
3 files changed, 16 insertions, 9 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 5f01308a358..9a8177bf43f 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,5 +1,12 @@ | |||
| 1 | 2011-04-20 Paul Eggert <eggert@cs.ucla.edu> | 1 | 2011-04-20 Paul Eggert <eggert@cs.ucla.edu> |
| 2 | 2 | ||
| 3 | * intervals.h (struct interval): Use EMACS_INT for members | ||
| 4 | where EMACS_UINT might cause problems. See | ||
| 5 | <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html>. | ||
| 6 | (CHECK_TOTAL_LENGTH): Remove cast to EMACS_INT; no longer needed. | ||
| 7 | * intervals.c (interval_deletion_adjustment): Now returns EMACS_INT. | ||
| 8 | All uses changed. | ||
| 9 | |||
| 3 | * alloc.c (overrun_check_malloc, overrun_check_realloc): Now static. | 10 | * alloc.c (overrun_check_malloc, overrun_check_realloc): Now static. |
| 4 | (overrun_check_free): Likewise. | 11 | (overrun_check_free): Likewise. |
| 5 | 12 | ||
diff --git a/src/intervals.c b/src/intervals.c index 3e73110845d..8f3840976d0 100644 --- a/src/intervals.c +++ b/src/intervals.c | |||
| @@ -1313,7 +1313,7 @@ delete_interval (register INTERVAL i) | |||
| 1313 | Do this by recursing down TREE to the interval in question, and | 1313 | Do this by recursing down TREE to the interval in question, and |
| 1314 | deleting the appropriate amount of text. */ | 1314 | deleting the appropriate amount of text. */ |
| 1315 | 1315 | ||
| 1316 | static EMACS_UINT | 1316 | static EMACS_INT |
| 1317 | interval_deletion_adjustment (register INTERVAL tree, register EMACS_INT from, | 1317 | interval_deletion_adjustment (register INTERVAL tree, register EMACS_INT from, |
| 1318 | register EMACS_INT amount) | 1318 | register EMACS_INT amount) |
| 1319 | { | 1319 | { |
| @@ -1325,9 +1325,9 @@ interval_deletion_adjustment (register INTERVAL tree, register EMACS_INT from, | |||
| 1325 | /* Left branch */ | 1325 | /* Left branch */ |
| 1326 | if (relative_position < LEFT_TOTAL_LENGTH (tree)) | 1326 | if (relative_position < LEFT_TOTAL_LENGTH (tree)) |
| 1327 | { | 1327 | { |
| 1328 | EMACS_UINT subtract = interval_deletion_adjustment (tree->left, | 1328 | EMACS_INT subtract = interval_deletion_adjustment (tree->left, |
| 1329 | relative_position, | 1329 | relative_position, |
| 1330 | amount); | 1330 | amount); |
| 1331 | tree->total_length -= subtract; | 1331 | tree->total_length -= subtract; |
| 1332 | CHECK_TOTAL_LENGTH (tree); | 1332 | CHECK_TOTAL_LENGTH (tree); |
| 1333 | return subtract; | 1333 | return subtract; |
| @@ -1336,7 +1336,7 @@ interval_deletion_adjustment (register INTERVAL tree, register EMACS_INT from, | |||
| 1336 | else if (relative_position >= (TOTAL_LENGTH (tree) | 1336 | else if (relative_position >= (TOTAL_LENGTH (tree) |
| 1337 | - RIGHT_TOTAL_LENGTH (tree))) | 1337 | - RIGHT_TOTAL_LENGTH (tree))) |
| 1338 | { | 1338 | { |
| 1339 | EMACS_UINT subtract; | 1339 | EMACS_INT subtract; |
| 1340 | 1340 | ||
| 1341 | relative_position -= (tree->total_length | 1341 | relative_position -= (tree->total_length |
| 1342 | - RIGHT_TOTAL_LENGTH (tree)); | 1342 | - RIGHT_TOTAL_LENGTH (tree)); |
| @@ -1378,7 +1378,7 @@ static void | |||
| 1378 | adjust_intervals_for_deletion (struct buffer *buffer, | 1378 | adjust_intervals_for_deletion (struct buffer *buffer, |
| 1379 | EMACS_INT start, EMACS_INT length) | 1379 | EMACS_INT start, EMACS_INT length) |
| 1380 | { | 1380 | { |
| 1381 | register EMACS_UINT left_to_delete = length; | 1381 | register EMACS_INT left_to_delete = length; |
| 1382 | register INTERVAL tree = BUF_INTERVALS (buffer); | 1382 | register INTERVAL tree = BUF_INTERVALS (buffer); |
| 1383 | Lisp_Object parent; | 1383 | Lisp_Object parent; |
| 1384 | EMACS_INT offset; | 1384 | EMACS_INT offset; |
diff --git a/src/intervals.h b/src/intervals.h index 6cf5c89374b..720598fe7a6 100644 --- a/src/intervals.h +++ b/src/intervals.h | |||
| @@ -27,8 +27,8 @@ struct interval | |||
| 27 | { | 27 | { |
| 28 | /* The first group of entries deal with the tree structure. */ | 28 | /* The first group of entries deal with the tree structure. */ |
| 29 | 29 | ||
| 30 | EMACS_UINT total_length; /* Length of myself and both children. */ | 30 | EMACS_INT total_length; /* Length of myself and both children. */ |
| 31 | EMACS_UINT position; /* Cache of interval's character position. */ | 31 | EMACS_INT position; /* Cache of interval's character position. */ |
| 32 | /* This field is usually updated | 32 | /* This field is usually updated |
| 33 | simultaneously with an interval | 33 | simultaneously with an interval |
| 34 | traversal, there is no guarantee | 34 | traversal, there is no guarantee |
| @@ -164,7 +164,7 @@ struct interval | |||
| 164 | #define CHECK_TOTAL_LENGTH(i) \ | 164 | #define CHECK_TOTAL_LENGTH(i) \ |
| 165 | do \ | 165 | do \ |
| 166 | { \ | 166 | { \ |
| 167 | if ((EMACS_INT) (i)->total_length < 0) \ | 167 | if ((i)->total_length < 0) \ |
| 168 | abort (); \ | 168 | abort (); \ |
| 169 | } \ | 169 | } \ |
| 170 | while (0) | 170 | while (0) |