diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2020-05-25 20:26:14 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2020-05-25 20:29:50 -0700 |
commit | 0dc529175dc027c1567fb9b7cd529d29236aad44 (patch) | |
tree | 12e250b10b6a14d25c3c6dacc8ee82bd9e8fc4e2 /lisp/emacs-lisp/re-builder.el | |
parent | 8b940dac32c2a37f93b8670751a0e5f72ec86cea (diff) | |
download | emacs-0dc529175dc027c1567fb9b7cd529d29236aad44.tar.gz emacs-0dc529175dc027c1567fb9b7cd529d29236aad44.tar.bz2 emacs-0dc529175dc027c1567fb9b7cd529d29236aad44.zip |
Fix aborts due to GC losing pseudovectors
Problem reported by Eli Zaretskii (Bug#41321).
* src/alloc.c (MALLOC_ALIGNMENT_BOUND): New constant.
(LISP_ALIGNMENT): Lower it to avoid crashes on MinGW and similarly
buggy platforms where malloc returns pointers not aligned to
alignof (max_align_t). But keep it higher on platforms where this
is known to work, as it helps GC performance.
(MALLOC_IS_LISP_ALIGNED): Define in terms of the other two.
* src/alloc.c (stacktop_sentry):
* src/thread.c (run_thread):
Don’t overalign or oversize stack sentries; they need to be
aligned only for pointers and Lisp_Object, not for arbitrary
pseudovector contents.
* src/lisp.h (union emacs_align_type): New type, used for
LISP_ALIGNMENT.
Diffstat (limited to 'lisp/emacs-lisp/re-builder.el')
0 files changed, 0 insertions, 0 deletions