aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorStefan Monnier2008-02-10 03:20:40 +0000
committerStefan Monnier2008-02-10 03:20:40 +0000
commit4b75ffab30b7764136732398319d33d7104cae68 (patch)
tree5610831cc57e65ae1f3e4889f0f65e28a2bd1bff /src
parent250962b3d8e3840c3046ae3434fc3785ecacb7eb (diff)
downloademacs-4b75ffab30b7764136732398319d33d7104cae68.tar.gz
emacs-4b75ffab30b7764136732398319d33d7104cae68.zip
(ASET): Check bounds.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog4
-rw-r--r--src/lisp.h6
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 @@
12008-02-10 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * lisp.h (ASET): Check bounds.
4
12008-02-10 Glenn Morris <rgm@gnu.org> 52008-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