[fpc-pascal] Pointer hashing
Mark Morgan Lloyd
markMLl.fpc-pascal at telemetry.co.uk
Tue Jan 31 18:12:22 CET 2017
On 31/01/17 15:30, Ryan Joseph wrote:
> Thanks for answering guys. Yes José is right, hashing the pointer wasn’t even a good solution so I used another hash. I had the pointers stored in another data type and I wanted to quickly test for the their entry in the table but I found another way.
>> On Jan 30, 2017, at 4:28 PM, José Mejuto <joshyfun at gmail.com> wrote:> > Hello,> > After addressing the ^ conversion showed by other people I have a question. Why you need to hash a pointer ? Hashing a value is interesting to reduce its compare time (taking collisions into account) and/or verify message integrity, and hashing a pointer does not meet none of this goals as it is process wide unique (no collisions) and its size is the fastest compare operation (most architectures).
> Regards, Ryan Joseph
I've hashed some of the fields in a jmp_buf together so that I could do
a quick check that a LongJmp() was being used with a sane parameter.
There's an occasional report in e.g. the Debian mailing lists where a
project is resisting being ported to 64-bit architectures because the
authors have mangled pointers in a size-specific way.
Historically, there's been cases where two pointers in a list node were
xored together to save space, but it's difficult to defend that practice
these days unless the payload is very small.
--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk
[Opinions above are the author's, not those of his employers or colleagues]
More information about the fpc-pascal
mailing list