diff options
author | Xinchen Hui <laruence@gmail.com> | 2016-03-21 19:19:05 +0800 |
---|---|---|
committer | Xinchen Hui <laruence@gmail.com> | 2016-03-21 19:19:05 +0800 |
commit | d26ca894020bc28eb55b153fac5548374d5ce16d (patch) | |
tree | 5429edd092bf2f5a2ea9cfd3d400d67bfe52d349 | |
parent | 9712a974beb53f47bcffb2c6554cc5c85d231fe2 (diff) | |
download | php-git-d26ca894020bc28eb55b153fac5548374d5ce16d.tar.gz |
array_dup should not copy the nApplyCount
-rw-r--r-- | Zend/zend_hash.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/Zend/zend_hash.c b/Zend/zend_hash.c index 39e9e14024..5404187a97 100644 --- a/Zend/zend_hash.c +++ b/Zend/zend_hash.c @@ -1794,7 +1794,7 @@ ZEND_API HashTable* ZEND_FASTCALL zend_array_dup(HashTable *source) target->pDestructor = source->pDestructor; if (source->nNumUsed == 0) { - target->u.flags = (source->u.flags & ~(HASH_FLAG_INITIALIZED|HASH_FLAG_PACKED|HASH_FLAG_PERSISTENT)) | HASH_FLAG_APPLY_PROTECTION | HASH_FLAG_STATIC_KEYS; + target->u.flags = (source->u.flags & ~(HASH_FLAG_INITIALIZED|HASH_FLAG_PACKED|HASH_FLAG_PERSISTENT|ZEND_HASH_APPLY_COUNT_MASK)) | HASH_FLAG_APPLY_PROTECTION | HASH_FLAG_STATIC_KEYS; target->nTableMask = HT_MIN_MASK; target->nNumUsed = 0; target->nNumOfElements = 0; @@ -1819,7 +1819,7 @@ ZEND_API HashTable* ZEND_FASTCALL zend_array_dup(HashTable *source) target->nInternalPointer = idx; } } else if (source->u.flags & HASH_FLAG_PACKED) { - target->u.flags = (source->u.flags & ~HASH_FLAG_PERSISTENT) | HASH_FLAG_APPLY_PROTECTION; + target->u.flags = (source->u.flags & ~(HASH_FLAG_PERSISTENT|ZEND_HASH_APPLY_COUNT_MASK)) | HASH_FLAG_APPLY_PROTECTION; target->nTableMask = source->nTableMask; target->nNumUsed = source->nNumUsed; target->nNumOfElements = source->nNumOfElements; @@ -1842,7 +1842,7 @@ ZEND_API HashTable* ZEND_FASTCALL zend_array_dup(HashTable *source) target->nInternalPointer = idx; } } else { - target->u.flags = (source->u.flags & ~HASH_FLAG_PERSISTENT) | HASH_FLAG_APPLY_PROTECTION; + target->u.flags = (source->u.flags & ~(HASH_FLAG_PERSISTENT|ZEND_HASH_APPLY_COUNT_MASK)) | HASH_FLAG_APPLY_PROTECTION; target->nTableMask = source->nTableMask; target->nNextFreeElement = source->nNextFreeElement; target->nInternalPointer = HT_INVALID_IDX; |