diff options
Diffstat (limited to 'Zend/zend_hash.c')
-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 27b603eed..20896abf3 100644 --- a/Zend/zend_hash.c +++ b/Zend/zend_hash.c @@ -527,6 +527,7 @@ ZEND_API int zend_hash_del_key_or_index(HashTable *ht, const char *arKey, uint n if (ht->pInternalPointer == p) { ht->pInternalPointer = p->pListNext; } + ht->nNumOfElements--; if (ht->pDestructor) { ht->pDestructor(p->pData); } @@ -535,7 +536,6 @@ ZEND_API int zend_hash_del_key_or_index(HashTable *ht, const char *arKey, uint n } pefree(p, ht->persistent); HANDLE_UNBLOCK_INTERRUPTIONS(); - ht->nNumOfElements--; return SUCCESS; } p = p->pNext; @@ -1320,6 +1320,7 @@ ZEND_API int zend_hash_update_current_key_ex(HashTable *ht, int key_type, const if (ht->pInternalPointer == p) { ht->pInternalPointer = p->pListNext; } + ht->nNumOfElements--; if (ht->pDestructor) { ht->pDestructor(p->pData); } @@ -1327,7 +1328,6 @@ ZEND_API int zend_hash_update_current_key_ex(HashTable *ht, int key_type, const pefree(p->pData, ht->persistent); } pefree(p, ht->persistent); - ht->nNumOfElements--; HANDLE_UNBLOCK_INTERRUPTIONS(); return FAILURE; } @@ -1355,6 +1355,7 @@ ZEND_API int zend_hash_update_current_key_ex(HashTable *ht, int key_type, const if (ht->pInternalPointer == q) { ht->pInternalPointer = q->pListNext; } + ht->nNumOfElements--; if (ht->pDestructor) { ht->pDestructor(q->pData); } @@ -1362,7 +1363,6 @@ ZEND_API int zend_hash_update_current_key_ex(HashTable *ht, int key_type, const pefree(q->pData, ht->persistent); } pefree(q, ht->persistent); - ht->nNumOfElements--; } if (p->pNext) { |