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/buffer.h | |
| 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/buffer.h')
| -rw-r--r-- | src/buffer.h | 18 |
1 files changed, 6 insertions, 12 deletions
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. |