From: Daniel Mendler <mail@daniel-mendler.de>
To: Robert Pluim <rpluim@gmail.com>
Cc: Philip Kaludercic <philipk@posteo.net>,
michael_heerdegen@web.de, Gregory Heytings <gregory@heytings.org>,
monnier@iro.umontreal.ca, 62009@debbugs.gnu.org,
Eli Zaretskii <eliz@gnu.org>,
Augusto Stoffel <arstoffel@gmail.com>
Subject: bug#62009: 29.0.60; Emacs crashes on setf symbol-name
Date: Fri, 10 Mar 2023 12:36:17 +0100 [thread overview]
Message-ID: <3a9f613f-baa9-2c48-f779-aaf43363a865@daniel-mendler.de> (raw)
In-Reply-To: <87fsacx2qf.fsf@gmail.com>
On 3/10/23 12:30, Robert Pluim wrote:
>>>>>> On Fri, 10 Mar 2023 12:09:59 +0100, Daniel Mendler <mail@daniel-mendler.de> said:
>
> Daniel> One could check if the string is located in read-only memory. Or one
> Daniel> could add a flag bit to the string data structure (and possibly to other
> Daniel> data structures too). Freezing data structures such that they become
> Daniel> read-only is a generally useful feature. There won't be any performance
> Daniel> overhead of the check since a branch not taken is fast thanks to the
> Daniel> branch predictor.
>
> We already have such a flag:
>
> /* Number of characters in string; MSB is used as the mark bit. */
> ptrdiff_t size;
> /* If nonnegative, number of bytes in the string (which is multibyte).
> If negative, the string is unibyte:
> -1 for data normally allocated
> -2 for data in rodata (C string constants)
> -3 for data that must be immovable (used for bytecode) */
> ptrdiff_t size_byte;
Thanks! That's good. Given that a read only flag already exists, it is
easy to fix the issue. We just have to make sure that the size is
negative for the symbol names and add a check in `aset`.
Daniel
next prev parent reply other threads:[~2023-03-10 11:36 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-06 19:26 bug#62009: 29.0.60; Emacs crashes on setf symbol-name Daniel Mendler
2023-03-07 4:40 ` Ruijie Yu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-03-07 15:45 ` Michael Heerdegen
2023-03-07 17:08 ` Daniel Mendler
2023-03-07 17:39 ` Eli Zaretskii
2023-03-09 21:11 ` Philip Kaludercic
2023-03-10 7:11 ` Eli Zaretskii
2023-03-10 8:45 ` Augusto Stoffel
2023-03-10 8:47 ` Augusto Stoffel
2023-03-10 11:50 ` Eli Zaretskii
2023-03-10 12:00 ` Daniel Mendler
2023-03-10 12:35 ` Eli Zaretskii
2023-03-10 12:45 ` Daniel Mendler
2023-03-10 12:57 ` Eli Zaretskii
2023-03-10 13:08 ` Daniel Mendler
2023-03-10 15:02 ` Eli Zaretskii
2023-03-11 15:16 ` Gregory Heytings
2023-03-11 15:37 ` Eli Zaretskii
2023-03-18 22:46 ` Gregory Heytings
2023-03-19 6:03 ` Eli Zaretskii
2023-03-19 21:20 ` Gregory Heytings
2023-03-10 11:49 ` Eli Zaretskii
2023-03-10 9:40 ` Gregory Heytings
2023-03-10 10:31 ` Daniel Mendler
2023-03-10 10:59 ` Gregory Heytings
2023-03-10 11:09 ` Daniel Mendler
2023-03-10 11:23 ` Augusto Stoffel
2023-03-10 12:09 ` Eli Zaretskii
2023-03-10 11:30 ` Robert Pluim
2023-03-10 11:36 ` Daniel Mendler [this message]
2023-03-10 12:13 ` Eli Zaretskii
2023-03-10 12:24 ` Daniel Mendler
2023-03-10 22:01 ` Dmitry Gutov
2023-03-10 11:57 ` Gregory Heytings
2023-03-10 12:12 ` Eli Zaretskii
2023-03-10 13:19 ` Robert Pluim
2023-03-11 7:07 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-03-13 8:07 ` Robert Pluim
2023-03-13 8:28 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-03-13 11:47 ` Eli Zaretskii
2023-03-13 11:50 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-03-13 11:46 ` Eli Zaretskii
2023-03-10 11:59 ` Eli Zaretskii
2023-03-10 11:53 ` Eli Zaretskii
2023-03-10 11:59 ` Gregory Heytings
2023-03-11 7:07 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-03-11 7:47 ` Eli Zaretskii
2023-03-10 18:56 ` Philip Kaludercic
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3a9f613f-baa9-2c48-f779-aaf43363a865@daniel-mendler.de \
--to=mail@daniel-mendler.de \
--cc=62009@debbugs.gnu.org \
--cc=arstoffel@gmail.com \
--cc=eliz@gnu.org \
--cc=gregory@heytings.org \
--cc=michael_heerdegen@web.de \
--cc=monnier@iro.umontreal.ca \
--cc=philipk@posteo.net \
--cc=rpluim@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).