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.h28
1 files changed, 16 insertions, 12 deletions
diff --git a/Zend/zend_hash.h b/Zend/zend_hash.h
index c770539dd1..cc1dcca0e7 100644
--- a/Zend/zend_hash.h
+++ b/Zend/zend_hash.h
@@ -60,8 +60,8 @@ typedef uint HashPosition;
BEGIN_EXTERN_C()
/* startup/shutdown */
-ZEND_API int _zend_hash_init(HashTable *ht, uint nSize, dtor_func_t pDestructor, zend_bool persistent ZEND_FILE_LINE_DC);
-ZEND_API int _zend_hash_init_ex(HashTable *ht, uint nSize, dtor_func_t pDestructor, zend_bool persistent, zend_bool bApplyProtection ZEND_FILE_LINE_DC);
+ZEND_API void _zend_hash_init(HashTable *ht, uint nSize, dtor_func_t pDestructor, zend_bool persistent ZEND_FILE_LINE_DC);
+ZEND_API void _zend_hash_init_ex(HashTable *ht, uint nSize, dtor_func_t pDestructor, zend_bool persistent, zend_bool bApplyProtection ZEND_FILE_LINE_DC);
ZEND_API void zend_hash_destroy(HashTable *ht);
ZEND_API void zend_hash_clean(HashTable *ht);
#define zend_hash_init(ht, nSize, pHashFunction, pDestructor, persistent) _zend_hash_init((ht), (nSize), (pDestructor), (persistent) ZEND_FILE_LINE_CC)
@@ -207,7 +207,7 @@ void zend_hash_display(const HashTable *ht);
END_EXTERN_C()
#define ZEND_INIT_SYMTABLE(ht) \
- ZEND_INIT_SYMTABLE_EX(ht, 2, 0)
+ ZEND_INIT_SYMTABLE_EX(ht, 8, 0)
#define ZEND_INIT_SYMTABLE_EX(ht, n, persistent) \
zend_hash_init(ht, n, NULL, ZVAL_PTR_DTOR, persistent)
@@ -418,12 +418,12 @@ static inline void *zend_hash_add_mem(HashTable *ht, zend_string *key, void *pDa
{
void *p, *r;
- p = pemalloc(size, ht->flags & HASH_FLAG_PERSISTENT);
+ p = pemalloc(size, ht->u.flags & HASH_FLAG_PERSISTENT);
memcpy(p, pData, size);
if ((r = zend_hash_add_ptr(ht, key, p))) {
return r;
}
- pefree(p, ht->flags & HASH_FLAG_PERSISTENT);
+ pefree(p, ht->u.flags & HASH_FLAG_PERSISTENT);
return NULL;
}
@@ -431,12 +431,12 @@ static inline void *zend_hash_str_add_mem(HashTable *ht, const char *str, int le
{
void *p, *r;
- p = pemalloc(size, ht->flags & HASH_FLAG_PERSISTENT);
+ p = pemalloc(size, ht->u.flags & HASH_FLAG_PERSISTENT);
memcpy(p, pData, size);
if ((r = zend_hash_str_add_ptr(ht, str, len, p))) {
return r;
}
- pefree(p, ht->flags & HASH_FLAG_PERSISTENT);
+ pefree(p, ht->u.flags & HASH_FLAG_PERSISTENT);
return NULL;
}
@@ -444,7 +444,7 @@ static inline void *zend_hash_update_mem(HashTable *ht, zend_string *key, void *
{
void *p;
- p = pemalloc(size, ht->flags & HASH_FLAG_PERSISTENT);
+ p = pemalloc(size, ht->u.flags & HASH_FLAG_PERSISTENT);
memcpy(p, pData, size);
return zend_hash_update_ptr(ht, key, p);
}
@@ -453,7 +453,7 @@ static inline void *zend_hash_str_update_mem(HashTable *ht, const char *str, int
{
void *p;
- p = pemalloc(size, ht->flags & HASH_FLAG_PERSISTENT);
+ p = pemalloc(size, ht->u.flags & HASH_FLAG_PERSISTENT);
memcpy(p, pData, size);
return zend_hash_str_update_ptr(ht, str, len, p);
}
@@ -480,7 +480,7 @@ static inline void *zend_hash_index_update_mem(HashTable *ht, ulong h, void *pDa
{
void *p;
- p = pemalloc(size, ht->flags & HASH_FLAG_PERSISTENT);
+ p = pemalloc(size, ht->u.flags & HASH_FLAG_PERSISTENT);
memcpy(p, pData, size);
return zend_hash_index_update_ptr(ht, h, p);
}
@@ -489,12 +489,12 @@ static inline void *zend_hash_next_index_insert_mem(HashTable *ht, void *pData,
{
void *p, *r;
- p = pemalloc(size, ht->flags & HASH_FLAG_PERSISTENT);
+ p = pemalloc(size, ht->u.flags & HASH_FLAG_PERSISTENT);
memcpy(p, pData, size);
if ((r = zend_hash_next_index_insert_ptr(ht, p))) {
return r;
}
- pefree(p, ht->flags & HASH_FLAG_PERSISTENT);
+ pefree(p, ht->u.flags & HASH_FLAG_PERSISTENT);
return NULL;
}
@@ -596,6 +596,10 @@ static inline void *zend_hash_get_current_data_ptr_ex(HashTable *ht, HashPositio
ZEND_HASH_REVERSE_FOREACH(ht, 0); \
_val = _z;
+#define ZEND_HASH_REVERSE_FOREACH_PTR(ht, _ptr) \
+ ZEND_HASH_REVERSE_FOREACH(ht, 0); \
+ _ptr = Z_PTR_P(_z);
+
#define ZEND_HASH_REVERSE_FOREACH_VAL_IND(ht, _val) \
ZEND_HASH_REVERSE_FOREACH(ht, 1); \
_val = _z;