emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: immediate strings #2


From: Stefan Monnier
Subject: Re: immediate strings #2
Date: Mon, 28 Nov 2011 21:07:35 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.91 (gnu/linux)

> struct Data_Lisp_String
>   {
>     unsigned int immediate_bit : 1;
>     signed int : IMMEDIATE_STRING_LENGTH_BITS; /* padding for immediate size 
> */
>     unsigned int gcmarkbit : 1;
>     signed int : IMMEDIATE_STRING_LENGTH_BITS; /* and for immediate size_byte 
> */
>     INTERVAL intervals;
>     ptrdiff_t size;
>     ptrdiff_t size_byte;
>     unsigned char *data;
>   };

Why?  IIUC that sums up to 5x32bit, which will break the "multiple of
8 alignment" rule and hence will need to be be rounded up to 6x32bit,
for an overall  increase of 50% in the size of struct Lisp_String.
I.e. a non-starter.  There are bits available in size and size_byte, we
have to use those (like we currently do with gcmarkbit in `size').


        Stefan



reply via email to

[Prev in Thread] Current Thread [Next in Thread]