diff options
| author | Paul Eggert | 2019-09-03 21:54:58 -0700 |
|---|---|---|
| committer | Paul Eggert | 2019-09-03 22:46:11 -0700 |
| commit | 97cfda2638afc7fed6ac7e465c6fe927f428a932 (patch) | |
| tree | ab634688fc29cfd75b013ae274b70c80cd426eea /src | |
| parent | 9117a667908064a0b4ae6ec6c8f3674d95ad6225 (diff) | |
| download | emacs-97cfda2638afc7fed6ac7e465c6fe927f428a932.tar.gz emacs-97cfda2638afc7fed6ac7e465c6fe927f428a932.zip | |
Take last_per_buffer_idx private
This will simplify future changes. Turn the runtime check
into an eassert, since it’s not needed in production.
* src/buffer.c (last_per_buffer_idx): Now static.
(valid_per_buffer_idx): New function.
* src/buffer.h (PER_BUFFER_VALUE_P, SET_PER_BUFFER_VALUE_P): Use it.
Diffstat (limited to 'src')
| -rw-r--r-- | src/buffer.c | 8 | ||||
| -rw-r--r-- | src/buffer.h | 18 |
2 files changed, 13 insertions, 13 deletions
diff --git a/src/buffer.c b/src/buffer.c index 62a3d66c8b7..77e8b6bb779 100644 --- a/src/buffer.c +++ b/src/buffer.c | |||
| @@ -105,7 +105,7 @@ static char buffer_permanent_local_flags[MAX_PER_BUFFER_VARS]; | |||
| 105 | 105 | ||
| 106 | /* Number of per-buffer variables used. */ | 106 | /* Number of per-buffer variables used. */ |
| 107 | 107 | ||
| 108 | int last_per_buffer_idx; | 108 | static int last_per_buffer_idx; |
| 109 | 109 | ||
| 110 | static void call_overlay_mod_hooks (Lisp_Object list, Lisp_Object overlay, | 110 | static void call_overlay_mod_hooks (Lisp_Object list, Lisp_Object overlay, |
| 111 | bool after, Lisp_Object arg1, | 111 | bool after, Lisp_Object arg1, |
| @@ -655,6 +655,12 @@ set_buffer_overlays_after (struct buffer *b, struct Lisp_Overlay *o) | |||
| 655 | b->overlays_after = o; | 655 | b->overlays_after = o; |
| 656 | } | 656 | } |
| 657 | 657 | ||
| 658 | bool | ||
| 659 | valid_per_buffer_idx (int idx) | ||
| 660 | { | ||
| 661 | return 0 <= idx && idx < last_per_buffer_idx; | ||
| 662 | } | ||
| 663 | |||
| 658 | /* Clone per-buffer values of buffer FROM. | 664 | /* Clone per-buffer values of buffer FROM. |
| 659 | 665 | ||
| 660 | Buffer TO gets the same per-buffer values as FROM, with the | 666 | Buffer TO gets the same per-buffer values as FROM, with the |
diff --git a/src/buffer.h b/src/buffer.h index 2080a6f40b7..14de70c6482 100644 --- a/src/buffer.h +++ b/src/buffer.h | |||
| @@ -1268,10 +1268,6 @@ buffer_window_count (struct buffer *b) | |||
| 1268 | Buffer-local Variables | 1268 | Buffer-local Variables |
| 1269 | ***********************************************************************/ | 1269 | ***********************************************************************/ |
| 1270 | 1270 | ||
| 1271 | /* Number of per-buffer variables used. */ | ||
| 1272 | |||
| 1273 | extern int last_per_buffer_idx; | ||
| 1274 | |||
| 1275 | /* Return the offset in bytes of member VAR of struct buffer | 1271 | /* Return the offset in bytes of member VAR of struct buffer |
| 1276 | from the start of a buffer structure. */ | 1272 | from the start of a buffer structure. */ |
| 1277 | 1273 | ||
| @@ -1296,23 +1292,21 @@ extern int last_per_buffer_idx; | |||
| 1296 | #define PER_BUFFER_VAR_IDX(VAR) \ | 1292 | #define PER_BUFFER_VAR_IDX(VAR) \ |
| 1297 | PER_BUFFER_IDX (PER_BUFFER_VAR_OFFSET (VAR)) | 1293 | PER_BUFFER_IDX (PER_BUFFER_VAR_OFFSET (VAR)) |
| 1298 | 1294 | ||
| 1295 | extern bool valid_per_buffer_idx (int); | ||
| 1296 | |||
| 1299 | /* Value is true if the variable with index IDX has a local value | 1297 | /* Value is true if the variable with index IDX has a local value |
| 1300 | in buffer B. */ | 1298 | in buffer B. */ |
| 1301 | 1299 | ||
| 1302 | #define PER_BUFFER_VALUE_P(B, IDX) \ | 1300 | #define PER_BUFFER_VALUE_P(B, IDX) \ |
| 1303 | (((IDX) < 0 || IDX >= last_per_buffer_idx) \ | 1301 | (eassert (valid_per_buffer_idx (IDX)), \ |
| 1304 | ? (emacs_abort (), false) \ | 1302 | (B)->local_flags[IDX]) |
| 1305 | : ((B)->local_flags[IDX] != 0)) | ||
| 1306 | 1303 | ||
| 1307 | /* Set whether per-buffer variable with index IDX has a buffer-local | 1304 | /* Set whether per-buffer variable with index IDX has a buffer-local |
| 1308 | value in buffer B. VAL zero means it hasn't. */ | 1305 | value in buffer B. VAL zero means it hasn't. */ |
| 1309 | 1306 | ||
| 1310 | #define SET_PER_BUFFER_VALUE_P(B, IDX, VAL) \ | 1307 | #define SET_PER_BUFFER_VALUE_P(B, IDX, VAL) \ |
| 1311 | do { \ | 1308 | (eassert (valid_per_buffer_idx (IDX)), \ |
| 1312 | if ((IDX) < 0 || (IDX) >= last_per_buffer_idx) \ | 1309 | (B)->local_flags[IDX] = (VAL)) |
| 1313 | emacs_abort (); \ | ||
| 1314 | (B)->local_flags[IDX] = (VAL); \ | ||
| 1315 | } while (false) | ||
| 1316 | 1310 | ||
| 1317 | /* Return the index value of the per-buffer variable at offset OFFSET | 1311 | /* Return the index value of the per-buffer variable at offset OFFSET |
| 1318 | in the buffer structure. | 1312 | in the buffer structure. |