summaryrefslogtreecommitdiff
path: root/Zend/zend_hash.h
diff options
context:
space:
mode:
Diffstat (limited to 'Zend/zend_hash.h')
-rw-r--r--Zend/zend_hash.h14
1 files changed, 8 insertions, 6 deletions
diff --git a/Zend/zend_hash.h b/Zend/zend_hash.h
index 60ac82d65c..c91f2f4166 100644
--- a/Zend/zend_hash.h
+++ b/Zend/zend_hash.h
@@ -34,6 +34,11 @@
#define HASH_DEL_KEY 0
#define HASH_DEL_INDEX 1
+typedef int (*compare_func_t)(const void *, const void *);
+typedef void (*sort_func_t)(void *, size_t, register size_t, compare_func_t);
+typedef void (*dtor_func_t)(void *pDest);
+typedef ulong (*hash_func_t)(char *arKey, uint nKeyLength);
+
struct hashtable;
typedef struct bucket {
@@ -53,25 +58,22 @@ typedef struct hashtable {
uint nHashSizeIndex;
uint nNumOfElements;
ulong nNextFreeElement;
- ulong(*pHashFunction) (char *arKey, uint nKeyLength);
+ hash_func_t pHashFunction;
Bucket *pInternalPointer; /* Used for element traversal */
Bucket *pListHead;
Bucket *pListTail;
Bucket **arBuckets;
- int (*pDestructor) (void *pData);
+ dtor_func_t pDestructor;
unsigned char persistent;
#if ZEND_DEBUG
int inconsistent;
#endif
} HashTable;
-typedef int (*compare_func_t) (const void *, const void *);
-typedef void (*sort_func_t) (void *, size_t, register size_t, compare_func_t);
-
BEGIN_EXTERN_C()
/* startup/shutdown */
-ZEND_API int zend_hash_init(HashTable *ht, uint nSize, ulong(*pHashFunction) (char *arKey, uint nKeyLength), int (*pDestructor) (void *pData), int persistent);
+ZEND_API int zend_hash_init(HashTable *ht, uint nSize, hash_func_t pHashFunction, dtor_func_t pDestructor, int persistent);
ZEND_API void zend_hash_destroy(HashTable *ht);
ZEND_API void zend_hash_clean(HashTable *ht);