语法¶
#include <plhash.h>
typedef struct PLHashAllocOps {
void *(PR_CALLBACK *allocTable)(void *pool, PRSize size);
void (PR_CALLBACK *freeTable)(void *pool, void *item);
PLHashEntry *(PR_CALLBACK *allocEntry)(void *pool, const void *key);
void (PR_CALLBACK *freeEntry)(void *pool, PLHashEntry *he, PRUintn flag);
} PLHashAllocOps;
#define HT_FREE_VALUE 0 /* just free the entry's value */
#define HT_FREE_ENTRY 1 /* free value and entire entry */
描述¶
哈希表函数的用户可以提供他们自己的内存分配函数。一对函数用于分配和释放表,另一对函数用于分配和释放表条目。
所有四个函数的第一个参数 pool 是一个 void * 指针,它是内存分配器的数据。通常,pool 指向内存分配器使用的内存池。
函数 freeEntry
不需要释放条目的值。如果 flag 是 HT_FREE_ENTRY
,则该函数释放该条目。
备注¶
函数 allocEntry
的参数 key
似乎没有用。它在默认的 allocEntry
函数中未使用。