aboutsummaryrefslogtreecommitdiffstats
path: root/src/ChangeLog
diff options
context:
space:
mode:
authorPaul Eggert2011-06-14 11:57:19 -0700
committerPaul Eggert2011-06-14 11:57:19 -0700
commitf66c7cf8f794d6f7fd9ccb8794ffc519e4e89795 (patch)
tree0de26b21c827049c7fa2485204ecf0e2d632b849 /src/ChangeLog
parenta1759b76246a21c7c07dc2ee00b8db792715104c (diff)
downloademacs-f66c7cf8f794d6f7fd9ccb8794ffc519e4e89795.tar.gz
emacs-f66c7cf8f794d6f7fd9ccb8794ffc519e4e89795.zip
Variadic C functions now count arguments with ptrdiff_t.
This partly undoes my 2011-03-30 change, which replaced int with size_t. Back then I didn't know that the Emacs coding style prefers signed int. Also, in the meantime I found a few more instances where arguments were being counted with int, which may truncate counts on 64-bit machines, or EMACS_INT, which may be unnecessarily wide. * lisp.h (struct Lisp_Subr.function.aMANY) (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call): Arg counts are now ptrdiff_t, not size_t. All variadic functions and their callers changed accordingly. (struct gcpro.nvars): Now size_t, not size_t. All uses changed. * bytecode.c (exec_byte_code): Check maxdepth for overflow, to avoid potential buffer overrun. Don't assume arg counts fit in 'int'. * callint.c (Fcall_interactively): Check arg count for overflow, to avoid potential buffer overrun. Use signed char, not 'int', for 'varies' array, so that we needn't bother to check its size calculation for overflow. * editfns.c (Fformat): Use ptrdiff_t, not EMACS_INT, to count args. * eval.c (apply_lambda): * fns.c (Fmapconcat): Use XFASTINT, not XINT, to get args length. (struct textprop_rec.argnum): Now ptrdiff_t, not int. All uses changed. (mapconcat): Use ptrdiff_t, not int and EMACS_INT, to count args.
Diffstat (limited to 'src/ChangeLog')
-rw-r--r--src/ChangeLog23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index e4e95ba5aa0..dc8f983c870 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,5 +1,28 @@
12011-06-14 Paul Eggert <eggert@cs.ucla.edu> 12011-06-14 Paul Eggert <eggert@cs.ucla.edu>
2 2
3 Variadic C functions now count arguments with ptrdiff_t.
4 This partly undoes my 2011-03-30 change, which replaced int with size_t.
5 Back then I didn't know that the Emacs coding style prefers signed int.
6 Also, in the meantime I found a few more instances where arguments
7 were being counted with int, which may be too narrow, or EMACS_INT, which
8 may be too wide.
9 * lisp.h (struct Lisp_Subr.function.aMANY)
10 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call):
11 Arg counts are now ptrdiff_t, not size_t.
12 All variadic functions and their callers changed accordingly.
13 (struct gcpro.nvars): Now size_t, not size_t. All uses changed.
14 * bytecode.c (exec_byte_code): Check maxdepth for overflow,
15 to avoid potential buffer overrun. Don't assume arg counts fit in 'int'.
16 * callint.c (Fcall_interactively): Check arg count for overflow,
17 to avoid potential buffer overrun. Use signed char, not 'int',
18 for 'varies' array, so that we needn't bother to check its size
19 calculation for overflow.
20 * editfns.c (Fformat): Use ptrdiff_t, not EMACS_INT, to count args.
21 * eval.c (apply_lambda):
22 * fns.c (Fmapconcat): Use XFASTINT, not XINT, to get args length.
23 (struct textprop_rec.argnum): Now ptrdiff_t, not int. All uses changed.
24 (mapconcat): Use ptrdiff_t, not int and EMACS_INT, to count args.
25
3 * callint.c (Fcall_interactively): Don't use index var as event count. 26 * callint.c (Fcall_interactively): Don't use index var as event count.
4 27
5 * vm-limit.c (check_memory_limits): Fix incorrect extern function decls. 28 * vm-limit.c (check_memory_limits): Fix incorrect extern function decls.