aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Eggert2011-04-20 01:04:17 -0700
committerPaul Eggert2011-04-20 01:04:17 -0700
commitc20db43fef1bceb545b05bec2dbf18b1fbb2b533 (patch)
tree7d2186191340a2d33fdf47b68c626e51f9608d39 /src
parent2538aa2f5f92dd8878652d299e7d6ebabc352075 (diff)
downloademacs-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/ChangeLog7
-rw-r--r--src/intervals.c12
-rw-r--r--src/intervals.h6
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 @@
12011-04-20 Paul Eggert <eggert@cs.ucla.edu> 12011-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
1316static EMACS_UINT 1316static EMACS_INT
1317interval_deletion_adjustment (register INTERVAL tree, register EMACS_INT from, 1317interval_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
1378adjust_intervals_for_deletion (struct buffer *buffer, 1378adjust_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)