Fow now, on linux x86 at least (which probably means on all compiles
with gcc on 32bits computers I'm afraid), the struct lrecord_header
size is 8 bytes.
struct lrecord_header
{
/* index into lrecord_implementations_table[] */
unsigned char type;
struct {
/* 1 if the object is marked during GC. */
unsigned mark :1;
/* 1 if the object resides in read-only space */
unsigned c_readonly : 1;
/* 1 if the object is readonly from lisp */
unsigned lisp_readonly : 1;
} flags;
};
We may want someday to integrate the type into the flags struct to go
back to 4 bytes _or_ change the unsigned char to int (which may make
the code faster, but probably only when using error checking).
OG.