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.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/Zend/zend_hash.h b/Zend/zend_hash.h
index 5e285f40c4..a39cdfce18 100644
--- a/Zend/zend_hash.h
+++ b/Zend/zend_hash.h
@@ -800,6 +800,22 @@ static zend_always_inline void *zend_hash_get_current_data_ptr_ex(HashTable *ht,
__fill_ht->nInternalPointer = 0; \
} while (0)
+static zend_always_inline void _zend_hash_append(HashTable *ht, zend_string *key, zval *zv)
+{
+ uint32_t idx = ht->nNumUsed++;
+ uint32_t nIndex;
+ Bucket *p = ht->arData + idx;
+
+ ZVAL_COPY_VALUE(&p->val, zv);
+ p->key = key;
+ p->h = key->h;
+ nIndex = p->h & ht->nTableMask;
+ Z_NEXT(p->val) = ht->arHash[nIndex];
+ ht->arHash[nIndex] = idx;
+ ht->nNumUsed = idx + 1;
+ ht->nNumOfElements++;
+}
+
static zend_always_inline void _zend_hash_append_ptr(HashTable *ht, zend_string *key, void *ptr)
{
uint32_t idx = ht->nNumUsed++;