diff options
| author | Stefan Monnier | 2008-02-10 03:20:40 +0000 |
|---|---|---|
| committer | Stefan Monnier | 2008-02-10 03:20:40 +0000 |
| commit | 4b75ffab30b7764136732398319d33d7104cae68 (patch) | |
| tree | 5610831cc57e65ae1f3e4889f0f65e28a2bd1bff /src | |
| parent | 250962b3d8e3840c3046ae3434fc3785ecacb7eb (diff) | |
| download | emacs-4b75ffab30b7764136732398319d33d7104cae68.tar.gz emacs-4b75ffab30b7764136732398319d33d7104cae68.zip | |
(ASET): Check bounds.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 4 | ||||
| -rw-r--r-- | src/lisp.h | 6 |
2 files changed, 9 insertions, 1 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index afc6603da5e..b3ffe08f3ba 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,7 @@ | |||
| 1 | 2008-02-10 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 2 | |||
| 3 | * lisp.h (ASET): Check bounds. | ||
| 4 | |||
| 1 | 2008-02-10 Glenn Morris <rgm@gnu.org> | 5 | 2008-02-10 Glenn Morris <rgm@gnu.org> |
| 2 | 6 | ||
| 3 | * buffer.c (mode-name): Doc fix. | 7 | * buffer.c (mode-name): Doc fix. |
diff --git a/src/lisp.h b/src/lisp.h index 5156386551a..daa45d3aad8 100644 --- a/src/lisp.h +++ b/src/lisp.h | |||
| @@ -589,8 +589,12 @@ extern size_t pure_size; | |||
| 589 | /* Convenience macros for dealing with Lisp arrays. */ | 589 | /* Convenience macros for dealing with Lisp arrays. */ |
| 590 | 590 | ||
| 591 | #define AREF(ARRAY, IDX) XVECTOR ((ARRAY))->contents[IDX] | 591 | #define AREF(ARRAY, IDX) XVECTOR ((ARRAY))->contents[IDX] |
| 592 | #define ASET(ARRAY, IDX, VAL) (AREF ((ARRAY), (IDX)) = (VAL)) | ||
| 593 | #define ASIZE(ARRAY) XVECTOR ((ARRAY))->size | 592 | #define ASIZE(ARRAY) XVECTOR ((ARRAY))->size |
| 593 | /* The IDX==IDX tries to detect when the macro argument is side-effecting. */ | ||
| 594 | #define ASET(ARRAY, IDX, VAL) \ | ||
| 595 | (eassert ((IDX) == (IDX)), \ | ||
| 596 | eassert ((IDX) >= 0 && (IDX) < ASIZE (ARRAY)), \ | ||
| 597 | ASLOT ((ARRAY), (IDX)) = (VAL)) | ||
| 594 | 598 | ||
| 595 | /* Convenience macros for dealing with Lisp strings. */ | 599 | /* Convenience macros for dealing with Lisp strings. */ |
| 596 | 600 | ||