summaryrefslogtreecommitdiff
path: root/Zend
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2015-05-19 13:22:58 +0300
committerDmitry Stogov <dmitry@zend.com>2015-05-19 13:22:58 +0300
commit6c8d49b6b0face2a5453f168da385b0964c3194f (patch)
tree3be79601c90a7a7ed48127d04a9225d5fcf37957 /Zend
parent27b83079fed07ebad369d3d2f774cad6293171a7 (diff)
downloadphp-git-6c8d49b6b0face2a5453f168da385b0964c3194f.tar.gz
Improved hash table copying
Diffstat (limited to 'Zend')
-rw-r--r--Zend/zend_hash.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/Zend/zend_hash.h b/Zend/zend_hash.h
index dcac9c355c..78a04ce038 100644
--- a/Zend/zend_hash.h
+++ b/Zend/zend_hash.h
@@ -877,7 +877,7 @@ 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)
+static zend_always_inline zval *_zend_hash_append(HashTable *ht, zend_string *key, zval *zv)
{
uint32_t idx = ht->nNumUsed++;
uint32_t nIndex;
@@ -896,9 +896,10 @@ static zend_always_inline void _zend_hash_append(HashTable *ht, zend_string *key
HT_HASH(ht, nIndex) = HT_IDX_TO_HASH(idx);
ht->nNumUsed = idx + 1;
ht->nNumOfElements++;
+ return &p->val;
}
-static zend_always_inline void _zend_hash_append_ptr(HashTable *ht, zend_string *key, void *ptr)
+static zend_always_inline zval *_zend_hash_append_ptr(HashTable *ht, zend_string *key, void *ptr)
{
uint32_t idx = ht->nNumUsed++;
uint32_t nIndex;
@@ -917,6 +918,7 @@ static zend_always_inline void _zend_hash_append_ptr(HashTable *ht, zend_string
HT_HASH(ht, nIndex) = HT_IDX_TO_HASH(idx);
ht->nNumUsed = idx + 1;
ht->nNumOfElements++;
+ return &p->val;
}
static zend_always_inline void _zend_hash_append_ind(HashTable *ht, zend_string *key, zval *ptr)