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 <joshy...@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]
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to