]> granicus.if.org Git - php/commitdiff
Micro optimization
authorDmitry Stogov <dmitry@zend.com>
Mon, 12 Feb 2018 21:56:48 +0000 (00:56 +0300)
committerDmitry Stogov <dmitry@zend.com>
Mon, 12 Feb 2018 21:56:48 +0000 (00:56 +0300)
Zend/zend_hash.c

index f5670dd3709fa4c8a06b4713189c22df44a06de4..b4a0d00b724d42178b73181a3fd928f801414e6c 100644 (file)
@@ -542,7 +542,7 @@ static zend_always_inline zval *_zend_hash_add_or_update_i(HashTable *ht, zend_s
        zend_ulong h;
        uint32_t nIndex;
        uint32_t idx;
-       Bucket *p;
+       Bucket *p, *arData;
 
        IS_CONSISTENT(ht);
        HT_ASSERT_RC1(ht);
@@ -614,13 +614,14 @@ add_to_hash:
                ht->nInternalPointer = idx;
        }
        zend_hash_iterators_update(ht, HT_INVALID_IDX, idx);
-       p = ht->arData + idx;
+       arData = ht->arData;
+       p = arData + idx;
        p->key = key;
        p->h = h = ZSTR_H(key);
-       ZVAL_COPY_VALUE(&p->val, pData);
        nIndex = h | ht->nTableMask;
-       Z_NEXT(p->val) = HT_HASH(ht, nIndex);
-       HT_HASH(ht, nIndex) = HT_IDX_TO_HASH(idx);
+       Z_NEXT(p->val) = HT_HASH_EX(arData, nIndex);
+       HT_HASH_EX(arData, nIndex) = HT_IDX_TO_HASH(idx);
+       ZVAL_COPY_VALUE(&p->val, pData);
 
        return &p->val;
 }