On Fri, Oct 13, 2000 at 03:52:25PM -0500, Jim Blandy wrote:
> Here's a simpler restatement of my concern about null keys:
> I'd like to use APR hash tables to hash arbitrary binary objects. For
> example, in the filesystem, I use APR hash tables for a node cache,
> which is indexed by node ID's; a node ID is an array of integers. If
> you can see that it's handy to take arbitrary objects and hash on
> them, then you can certainly imagine that some of these objects might have
> the empty byte string as a valid entity.
> But at the moment, APR hash tables can't distinguish between the empty
> byte string and the byte string containing one zero byte. They're
> both treated as equivalent keys. It's kind of screwey.
Untrue. These two statements are different:
apr_hash_get(ht, "", 0);
apr_hash_get(ht, "", 1);
The former is a zero-length key, the latter is a length of 1 containing a
the value zero.
Think about how the key and length are handled:
if (len == 0)
len = strlen(key);
What I plan to do is introduce -1 to mean "compute the strlen for me" rather
than using 0 to do that (since we want 0 to be a legal key length).
Greg Stein, http://www.lyra.org/
Received on Sat Oct 21 14:36:11 2006