70 lines
1.7 KiB
Markdown
70 lines
1.7 KiB
Markdown
# 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.
|