diff options
| author | Paul Eggert | 2024-07-20 00:17:14 -0700 |
|---|---|---|
| committer | Paul Eggert | 2024-07-20 00:19:33 -0700 |
| commit | 79b9f05d3a44b25db9fd3eff9cc002324cfa790c (patch) | |
| tree | 0aad9dcb93934de2496293ce8d87c8a1c7ca1a12 /java/debug.sh | |
| parent | cb78b43f39432af3301a39507eac23f5f1e9fbf3 (diff) | |
| download | emacs-79b9f05d3a44b25db9fd3eff9cc002324cfa790c.tar.gz emacs-79b9f05d3a44b25db9fd3eff9cc002324cfa790c.zip | |
Avoid accessing uninitialized bool_vector words
Although loading uninitialized works from memory and then ignoring
the result works fine on conventional architectures, it
technically has undefined behavior in C, so redo bool_vector
allocation so that the code never does that. This can improve
performance when allocating large vectors of nil, since calloc can
clear the memory lazily.
* src/alloc.c (make_clear_bool_vector): New function,
a generalization of make_uninit_bool_vector.
(make_uninit_bool_vector): Use it.
(Fmake_bool_vector): If !INIT, rely on make_clear_bool_vector.
* src/alloc.c (Fbool_vector):
* src/fns.c (Freverse): Don’t access uninitialized bool_vector words.
Diffstat (limited to 'java/debug.sh')
0 files changed, 0 insertions, 0 deletions