PL_NewHashTable

Create a new hash table.

Syntax

#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

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 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.