more LP64 friendly.
To: None <tech-kern@NetBSD.org>
From: Matt Thomas <matt@3am-software.com>
List: tech-kern
Date: 11/23/2003 09:29:07
I like to commit the following changes to <sys/tree.h>. The primary
changes is to add a bit of const poisoning and to make the comparision
routine return long instead of int. On a LP64 platform, the current
use of int makes doing (note the additional const poisoning)
int
cmp(const struct type *a, const struct type *b)
{
return b->f - a->f;
}
impossible if f is wider than an int. That's an unneeded complication.
The other thing is adding a const to the SPLAY_FIND function since that
element is read-only. However, my problem with SPLAY_FIND is that takes
an element rather than a key type. That could be fixed by using two
comparision routines, one for comparing struct and one to compare
a element and a key type. Right now I work around that by moving the
key item to the beginning of the struct and casting. But that's evil.
--
Matt Thomas email: matt@3am-software.com
3am Software Foundry www: http://3am-software.com/bio/matt/
Cupertino, CA disclaimer: I avow all knowledge of this
message.