]> granicus.if.org Git - php/commitdiff
Strength reduction
authorDmitry Stogov <dmitry@zend.com>
Wed, 10 Jan 2018 11:23:43 +0000 (14:23 +0300)
committerDmitry Stogov <dmitry@zend.com>
Wed, 10 Jan 2018 11:23:43 +0000 (14:23 +0300)
Zend/zend_hash.h

index 50529cea3b44de8c0f57d38a20b4e063ddcbf12c..312b7d30e8af76a1f3c4d2eeeeeabc7ce5cb9c0e 100644 (file)
@@ -913,10 +913,12 @@ static zend_always_inline void *zend_hash_get_current_data_ptr_ex(HashTable *ht,
 
 #define ZEND_HASH_REVERSE_FOREACH(_ht, indirect) do { \
                HashTable *__ht = (_ht); \
-               uint32_t _idx; \
+               uint32_t _idx = __ht->nNumUsed; \
+               Bucket *_p = __ht->arData + _idx; \
+               zval *_z; \
                for (_idx = __ht->nNumUsed; _idx > 0; _idx--) { \
-                       Bucket *_p = __ht->arData + (_idx - 1); \
-                       zval *_z = &_p->val; \
+                       _p--; \
+                       _z = &_p->val; \
                        if (indirect && Z_TYPE_P(_z) == IS_INDIRECT) { \
                                _z = Z_INDIRECT_P(_z); \
                        } \