PL_NewHashTable =============== Create a new hash table. Syntax ------ .. code:: #include 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.