Source code
Revision control
Copy as Markdown
Other Tools
# PL_NewHashTable
Create a new hash table.
## Syntax
```{code}
#include <plhash.h>
PLHashTable *PL_NewHashTable(
PRUint32 numBuckets,
PLHashFunction keyHash,
PLHashComparator keyCompare,
PLHashComparator valueCompare,
const PLHashAllocOps *allocOps,
void *allocPriv
);
```
### Parameters
The function has the following parameters:
`numBuckets`
: The number of buckets in the hash table.
`keyHash`
: Hash function.
`keyCompare`
: Function used to compare keys of entries.
`valueCompare`
: Function used to compare keys of entries.
`allocOps`
: A pointer to a `PLHashAllocOps` structure that must exist
throughout the lifetime of the new hash table.
`allocPriv`
: Passed as the first argument (pool).
### Returns
The new hash table.
## Description
{ref}`PL_NewHashTable` creates a new hash table. The table has at least 16
buckets. You can pass a value of 0 as `numBuckets` to create the
default number of buckets in the new table. The arguments `keyCompare`
and `valueCompare` are functions of type {ref}`PLHashComparator` that the
hash table library functions use to compare the keys and the values of
entries.
The argument `allocOps` points to a `PLHashAllocOps` structure that
must exist throughout the lifetime of the new hash table. The hash table
library functions do not make a copy of this structure. When the
allocation functions in `allocOps` are invoked, the allocation private
data allocPriv is passed as the first argument (pool). You can specify a
`NULL` value for `allocOps` to use the default allocation functions.
If `allocOps` is `NULL`, `allocPriv` is ignored. Note that the
default `freeEntry` function does not free the value of the entry.