On Mon, 8 Apr 2024 at 16:27, John Naylor <johncnaylo...@gmail.com> wrote:
> On Sun, Apr 7, 2024 at 9:08 AM John Naylor <johncnaylo...@gmail.com> > wrote: > > > > I've attached a mostly-polished update on runtime embeddable values, > > storing up to 3 offsets in the child pointer (1 on 32-bit platforms). > > As discussed, this includes a macro to cap max possible offset that > > can be stored in the bitmap, which I believe only reduces the valid > > offset range for 32kB pages on 32-bit platforms. Even there, it allows > > for more line pointers than can possibly be useful. It also splits > > into two parts for readability. It would be committed in two pieces as > > well, since they are independently useful. > > I pushed both of these and see that mylodon complains that anonymous > unions are a C11 feature. I'm not actually sure that the union with > uintptr_t is actually needed, though, since that's not accessed as > such here. The simplest thing seems to get rid if the union and name > the inner struct "header", as in the attached. > Provided uintptr_t is not accessed it might be good to get rid of it. Maybe this patch also need correction in this: +#define NUM_FULL_OFFSETS ((sizeof(uintptr_t) - sizeof(uint8) - sizeof(int8)) / sizeof(OffsetNumber)) Regards, Pavel