diff options
Diffstat (limited to 'src/buffer.h')
| -rw-r--r-- | src/buffer.h | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/buffer.h b/src/buffer.h index dc1d62beb00..4643e0d9d0e 100644 --- a/src/buffer.h +++ b/src/buffer.h | |||
| @@ -309,8 +309,10 @@ while (0) | |||
| 309 | 309 | ||
| 310 | /* Maximum number of bytes in a buffer. | 310 | /* Maximum number of bytes in a buffer. |
| 311 | A buffer cannot contain more bytes than a 1-origin fixnum can represent, | 311 | A buffer cannot contain more bytes than a 1-origin fixnum can represent, |
| 312 | nor can it be so large that C pointer arithmetic stops working. */ | 312 | nor can it be so large that C pointer arithmetic stops working. |
| 313 | #define BUF_BYTES_MAX min (MOST_POSITIVE_FIXNUM - 1, min (SIZE_MAX, PTRDIFF_MAX)) | 313 | The ptrdiff_t cast ensures that this is signed, not unsigned. */ |
| 314 | #define BUF_BYTES_MAX \ | ||
| 315 | (ptrdiff_t) min (MOST_POSITIVE_FIXNUM - 1, min (SIZE_MAX, PTRDIFF_MAX)) | ||
| 314 | 316 | ||
| 315 | /* Return the address of byte position N in current buffer. */ | 317 | /* Return the address of byte position N in current buffer. */ |
| 316 | 318 | ||
| @@ -885,10 +887,10 @@ extern struct buffer buffer_local_symbols; | |||
| 885 | extern void delete_all_overlays (struct buffer *); | 887 | extern void delete_all_overlays (struct buffer *); |
| 886 | extern void reset_buffer (struct buffer *); | 888 | extern void reset_buffer (struct buffer *); |
| 887 | extern void evaporate_overlays (EMACS_INT); | 889 | extern void evaporate_overlays (EMACS_INT); |
| 888 | extern int overlays_at (EMACS_INT pos, int extend, Lisp_Object **vec_ptr, | 890 | extern ptrdiff_t overlays_at (EMACS_INT pos, int extend, Lisp_Object **vec_ptr, |
| 889 | int *len_ptr, EMACS_INT *next_ptr, | 891 | ptrdiff_t *len_ptr, EMACS_INT *next_ptr, |
| 890 | EMACS_INT *prev_ptr, int change_req); | 892 | EMACS_INT *prev_ptr, int change_req); |
| 891 | extern int sort_overlays (Lisp_Object *, int, struct window *); | 893 | extern ptrdiff_t sort_overlays (Lisp_Object *, ptrdiff_t, struct window *); |
| 892 | extern void recenter_overlay_lists (struct buffer *, EMACS_INT); | 894 | extern void recenter_overlay_lists (struct buffer *, EMACS_INT); |
| 893 | extern EMACS_INT overlay_strings (EMACS_INT, struct window *, unsigned char **); | 895 | extern EMACS_INT overlay_strings (EMACS_INT, struct window *, unsigned char **); |
| 894 | extern void validate_region (Lisp_Object *, Lisp_Object *); | 896 | extern void validate_region (Lisp_Object *, Lisp_Object *); |
| @@ -906,7 +908,7 @@ extern void mmap_set_vars (int); | |||
| 906 | 908 | ||
| 907 | #define GET_OVERLAYS_AT(posn, overlays, noverlays, nextp, chrq) \ | 909 | #define GET_OVERLAYS_AT(posn, overlays, noverlays, nextp, chrq) \ |
| 908 | do { \ | 910 | do { \ |
| 909 | int maxlen = 40; \ | 911 | ptrdiff_t maxlen = 40; \ |
| 910 | overlays = (Lisp_Object *) alloca (maxlen * sizeof (Lisp_Object)); \ | 912 | overlays = (Lisp_Object *) alloca (maxlen * sizeof (Lisp_Object)); \ |
| 911 | noverlays = overlays_at (posn, 0, &overlays, &maxlen, \ | 913 | noverlays = overlays_at (posn, 0, &overlays, &maxlen, \ |
| 912 | nextp, NULL, chrq); \ | 914 | nextp, NULL, chrq); \ |