diff options
| author | Paul Eggert | 2013-07-18 18:24:35 -0700 |
|---|---|---|
| committer | Paul Eggert | 2013-07-18 18:24:35 -0700 |
| commit | 1396ac86dea5fccab800e4b25fdb5319381891eb (patch) | |
| tree | 7f89955a2ab13f3ef4a40f14a48bbcc293c3b179 /src/ChangeLog | |
| parent | c7064f05d3d660fbdd9e7a2feb0860b04f46ae0d (diff) | |
| download | emacs-1396ac86dea5fccab800e4b25fdb5319381891eb.tar.gz emacs-1396ac86dea5fccab800e4b25fdb5319381891eb.zip | |
Fix obscure porting bug with varargs functions.
The code assumed that int is treated like ptrdiff_t in a vararg
function, which is not a portable assumption. There was a similar
-- though these days less likely -- porting problem with various
assumptions that pointers of different types all smell the same as
far as vararg functions is conserved. To make this problem less
likely in the future, redo the API to use varargs functions.
* alloc.c (make_save_value): Remove this vararg function.
All uses changed to ...
(make_save_int_int_int, make_save_obj_obj_obj_obj)
(make_save_ptr_int, make_save_funcptr_ptr_obj, make_save_memory):
New functions.
(make_save_ptr): Rename from make_save_pointer, for consistency with
the above. Define only on platforms that need it. All uses changed.
Diffstat (limited to 'src/ChangeLog')
| -rw-r--r-- | src/ChangeLog | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 81b23bccc8b..73fc64f37c5 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,20 @@ | |||
| 1 | 2013-07-19 Paul Eggert <eggert@cs.ucla.edu> | ||
| 2 | |||
| 3 | Fix obscure porting bug with varargs functions. | ||
| 4 | The code assumed that int is treated like ptrdiff_t in a vararg | ||
| 5 | function, which is not a portable assumption. There was a similar | ||
| 6 | -- though these days less likely -- porting problem with various | ||
| 7 | assumptions that pointers of different types all smell the same as | ||
| 8 | far as vararg functions is conserved. To make this problem less | ||
| 9 | likely in the future, redo the API to use varargs functions. | ||
| 10 | * alloc.c (make_save_value): Remove this vararg function. | ||
| 11 | All uses changed to ... | ||
| 12 | (make_save_int_int_int, make_save_obj_obj_obj_obj) | ||
| 13 | (make_save_ptr_int, make_save_funcptr_ptr_obj, make_save_memory): | ||
| 14 | New functions. | ||
| 15 | (make_save_ptr): Rename from make_save_pointer, for consistency with | ||
| 16 | the above. Define only on platforms that need it. All uses changed. | ||
| 17 | |||
| 1 | 2013-07-18 Paul Eggert <eggert@cs.ucla.edu> | 18 | 2013-07-18 Paul Eggert <eggert@cs.ucla.edu> |
| 2 | 19 | ||
| 3 | * keyboard.c: Try to fix typos in previous change. | 20 | * keyboard.c: Try to fix typos in previous change. |