summaryrefslogtreecommitdiff
path: root/Zend/zend_hash.c
diff options
context:
space:
mode:
Diffstat (limited to 'Zend/zend_hash.c')
-rw-r--r--Zend/zend_hash.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/Zend/zend_hash.c b/Zend/zend_hash.c
index 8a8ef2948e..52868cf4a6 100644
--- a/Zend/zend_hash.c
+++ b/Zend/zend_hash.c
@@ -1049,9 +1049,13 @@ ZEND_API int ZEND_FASTCALL zend_hash_del_ind(HashTable *ht, zend_string *key)
return FAILURE;
} else {
if (ht->pDestructor) {
- ht->pDestructor(data);
+ zval tmp;
+ ZVAL_COPY_VALUE(&tmp, data);
+ ZVAL_UNDEF(data);
+ ht->pDestructor(&tmp);
+ } else {
+ ZVAL_UNDEF(data);
}
- ZVAL_UNDEF(data);
}
} else {
_zend_hash_del_el_ex(ht, idx, p, prev);