PostGIS  2.4.9dev-r@@SVN_REVISION@@
uthash.h File Reference
#include <string.h>
#include <stddef.h>
#include <stdlib.h>
Include dependency graph for uthash.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  UT_hash_bucket
 
struct  UT_hash_table
 
struct  UT_hash_handle
 

Macros

#define UTHASH_VERSION   2.0.2
 
#define DECLTYPE(x)   (__typeof(x))
 
#define DECLTYPE_ASSIGN(dst, src)
 
#define uthash_fatal(msg)   lwerror("uthash: fatal error (out of memory,etc)")
 
#define uthash_malloc(sz)   palloc(sz) /* malloc fcn */
 
#define uthash_free(ptr, sz)   pfree(ptr) /* free fcn */
 
#define uthash_strlen(s)   strlen(s)
 
#define uthash_memcmp(a, b, n)   memcmp(a,b,n)
 
#define uthash_noexpand_fyi(tbl)   /* can be defined to log noexpand */
 
#define uthash_expand_fyi(tbl)   /* can be defined to log expands */
 
#define HASH_INITIAL_NUM_BUCKETS   32U /* initial number of buckets */
 
#define HASH_INITIAL_NUM_BUCKETS_LOG2   5U /* lg2 of initial number of buckets */
 
#define HASH_BKT_CAPACITY_THRESH   10U /* expand when bucket count reaches */
 
#define ELMT_FROM_HH(tbl, hhp)   ((void*)(((char*)(hhp)) - ((tbl)->hho)))
 
#define HH_FROM_ELMT(tbl, elp)   ((UT_hash_handle *)(((char*)(elp)) + ((tbl)->hho)))
 
#define HASH_VALUE(keyptr, keylen, hashv)
 
#define HASH_FIND_BYHASHVALUE(hh, head, keyptr, keylen, hashval, out)
 
#define HASH_FIND(hh, head, keyptr, keylen, out)
 
#define HASH_BLOOM_MAKE(tbl)
 
#define HASH_BLOOM_FREE(tbl)
 
#define HASH_BLOOM_ADD(tbl, hashv)
 
#define HASH_BLOOM_TEST(tbl, hashv)   (1)
 
#define HASH_BLOOM_BYTELEN   0U
 
#define HASH_MAKE_TABLE(hh, head)
 
#define HASH_REPLACE_BYHASHVALUE_INORDER(hh, head, fieldname, keylen_in, hashval, add, replaced, cmpfcn)
 
#define HASH_REPLACE_BYHASHVALUE(hh, head, fieldname, keylen_in, hashval, add, replaced)
 
#define HASH_REPLACE(hh, head, fieldname, keylen_in, add, replaced)
 
#define HASH_REPLACE_INORDER(hh, head, fieldname, keylen_in, add, replaced, cmpfcn)
 
#define HASH_APPEND_LIST(hh, head, add)
 
#define HASH_AKBI_INNER_LOOP(hh, head, add, cmpfcn)
 
#define HASH_ADD_KEYPTR_BYHASHVALUE_INORDER(hh, head, keyptr, keylen_in, hashval, add, cmpfcn)
 
#define HASH_ADD_KEYPTR_INORDER(hh, head, keyptr, keylen_in, add, cmpfcn)
 
#define HASH_ADD_BYHASHVALUE_INORDER(hh, head, fieldname, keylen_in, hashval, add, cmpfcn)   HASH_ADD_KEYPTR_BYHASHVALUE_INORDER(hh, head, &((add)->fieldname), keylen_in, hashval, add, cmpfcn)
 
#define HASH_ADD_INORDER(hh, head, fieldname, keylen_in, add, cmpfcn)   HASH_ADD_KEYPTR_INORDER(hh, head, &((add)->fieldname), keylen_in, add, cmpfcn)
 
#define HASH_ADD_KEYPTR_BYHASHVALUE(hh, head, keyptr, keylen_in, hashval, add)
 
#define HASH_ADD_KEYPTR(hh, head, keyptr, keylen_in, add)
 
#define HASH_ADD_BYHASHVALUE(hh, head, fieldname, keylen_in, hashval, add)   HASH_ADD_KEYPTR_BYHASHVALUE(hh, head, &((add)->fieldname), keylen_in, hashval, add)
 
#define HASH_ADD(hh, head, fieldname, keylen_in, add)   HASH_ADD_KEYPTR(hh, head, &((add)->fieldname), keylen_in, add)
 
#define HASH_TO_BKT(hashv, num_bkts, bkt)
 
#define HASH_DELETE(hh, head, delptr)
 
#define HASH_FIND_STR(head, findstr, out)   HASH_FIND(hh,head,findstr,(unsigned)uthash_strlen(findstr),out)
 
#define HASH_ADD_STR(head, strfield, add)   HASH_ADD(hh,head,strfield[0],(unsigned)uthash_strlen(add->strfield),add)
 
#define HASH_REPLACE_STR(head, strfield, add, replaced)   HASH_REPLACE(hh,head,strfield[0],(unsigned)uthash_strlen(add->strfield),add,replaced)
 
#define HASH_FIND_INT(head, findint, out)   HASH_FIND(hh,head,findint,sizeof(int),out)
 
#define HASH_ADD_INT(head, intfield, add)   HASH_ADD(hh,head,intfield,sizeof(int),add)
 
#define HASH_REPLACE_INT(head, intfield, add, replaced)   HASH_REPLACE(hh,head,intfield,sizeof(int),add,replaced)
 
#define HASH_FIND_PTR(head, findptr, out)   HASH_FIND(hh,head,findptr,sizeof(void *),out)
 
#define HASH_ADD_PTR(head, ptrfield, add)   HASH_ADD(hh,head,ptrfield,sizeof(void *),add)
 
#define HASH_REPLACE_PTR(head, ptrfield, add, replaced)   HASH_REPLACE(hh,head,ptrfield,sizeof(void *),add,replaced)
 
#define HASH_DEL(head, delptr)   HASH_DELETE(hh,head,delptr)
 
#define HASH_FSCK(hh, head)
 
#define HASH_EMIT_KEY(hh, head, keyptr, fieldlen)
 
#define HASH_FCN   HASH_JEN
 
#define HASH_BER(key, keylen, hashv)
 
#define HASH_SAX(key, keylen, hashv)
 
#define HASH_FNV(key, keylen, hashv)
 
#define HASH_OAT(key, keylen, hashv)
 
#define HASH_JEN_MIX(a, b, c)
 
#define HASH_JEN(key, keylen, hashv)
 
#define get16bits(d)
 
#define HASH_SFH(key, keylen, hashv)
 
#define HASH_FIND_IN_BKT(tbl, hh, head, keyptr, keylen_in, hashval, out)
 
#define HASH_ADD_TO_BKT(head, addhh)
 
#define HASH_DEL_IN_BKT(hh, head, hh_del)
 
#define HASH_EXPAND_BUCKETS(tbl)
 
#define HASH_SORT(head, cmpfcn)   HASH_SRT(hh,head,cmpfcn)
 
#define HASH_SRT(hh, head, cmpfcn)
 
#define HASH_SELECT(hh_dst, dst, hh_src, src, cond)
 
#define HASH_CLEAR(hh, head)
 
#define HASH_OVERHEAD(hh, head)
 
#define HASH_ITER(hh, head, el, tmp)
 
#define HASH_COUNT(head)   HASH_CNT(hh,head)
 
#define HASH_CNT(hh, head)   ((head != NULL)?((head)->hh.tbl->num_items):0U)
 
#define HASH_SIGNATURE   0xa0111fe1u
 
#define HASH_BLOOM_SIGNATURE   0xb12220f2u
 

Typedefs

typedef unsigned int uint32_t
 
typedef unsigned char uint8_t
 
typedef struct UT_hash_bucket UT_hash_bucket
 
typedef struct UT_hash_table UT_hash_table
 
typedef struct UT_hash_handle UT_hash_handle