Re: same-address mappings vs. relative pointers
| От | Florian Pflug |
|---|---|
| Тема | Re: same-address mappings vs. relative pointers |
| Дата | |
| Msg-id | 6595D7FC-7EB4-4A8D-80EF-AF81766BF5C8@phlo.org обсуждение исходный текст |
| Ответ на | Re: same-address mappings vs. relative pointers (Andres Freund <andres@2ndquadrant.com>) |
| Ответы |
Re: same-address mappings vs. relative pointers
|
| Список | pgsql-hackers |
On Dec5, 2013, at 15:44 , Andres Freund <andres@2ndquadrant.com> wrote:
> There might be some ugly compiler dependent magic we could do. Depending
> on how we decide to declare offsets. Like (very, very roughly)
>
> #define relptr(type, struct_name, varname) union struct_name##_##varname{ \
> type relptr_type; \
> Offset relptr_off;
> }
>
> And then, for accessing have:
> #define relptr_access(seg, off) \
> typeof(off.relptr_type)* (((char *)seg->base_address) + off.relptr_off)
>
> But boy, that's ugly.
Well, uglyness we can live with, especially if it's less ugly than the
alternatives. But I'm afraid is also unportable - typeof() is a GCC
extension, not a part of ANSI C, no?
best regards,
Florian Pflug
В списке pgsql-hackers по дате отправления: