diff options
author | Mattias EngdegÄrd <mattiase@acm.org> | 2022-02-02 16:51:43 +0100 |
---|---|---|
committer | Mattias EngdegÄrd <mattiase@acm.org> | 2022-02-12 18:18:58 +0100 |
commit | 297520852f4f0e11a34a8a867c13fdf03d83eafd (patch) | |
tree | 590f2992b2000c3c4945d8b908a3974848fce636 /test/lisp/emacs-lisp/syntax-tests.el | |
parent | a8245e122075175df2f124b20e9e5b1b583eff89 (diff) | |
download | emacs-297520852f4f0e11a34a8a867c13fdf03d83eafd.tar.gz emacs-297520852f4f0e11a34a8a867c13fdf03d83eafd.tar.bz2 emacs-297520852f4f0e11a34a8a867c13fdf03d83eafd.zip |
Turn specpdl_ref into a type of its own
Wrap the specpdl_ref contents in a struct, which gives us some very
useful type checking to make sure that all code that assumed integral
specpdl refs has been converted.
We only do this on 64-bit platforms, since those tend to have modern
ABIs where small structs are optimised as scalars. In other words,
this change should not affect the compiled code.
* src/lisp.h (specpdl_ref): Now a struct on 64-bit platforms.
(wrap_specpdl_ref, unwrap_specpdl_ref): New.
(specpdl_count_to_ref, specpdl_ref_to_count)
(specpdl_ref_eq, specpdl_ref_lt)
(specpdl_ref_valid_p, make_invalid_specpdl_ref): Use new wrappers.
Diffstat (limited to 'test/lisp/emacs-lisp/syntax-tests.el')
0 files changed, 0 insertions, 0 deletions