diff options
author | Xinchen Hui <laruence@gmail.com> | 2015-11-03 17:53:56 -0800 |
---|---|---|
committer | Xinchen Hui <laruence@gmail.com> | 2015-11-03 17:53:56 -0800 |
commit | 2f2653aa7758cd586f1daff288146740dd5fa61b (patch) | |
tree | f95768ca50b406ec74a45576a24db29a3ee803d3 /Zend/zend_vm_def.h | |
parent | d7ff107654acb5dc682773bb0b369a7e593056d8 (diff) | |
download | php-git-2f2653aa7758cd586f1daff288146740dd5fa61b.tar.gz |
Fixed bug #70805 (Segmentation faults whilst running Drupal 8 test suite)
Diffstat (limited to 'Zend/zend_vm_def.h')
-rw-r--r-- | Zend/zend_vm_def.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h index ad6dc58ec9..1fc343b5cb 100644 --- a/Zend/zend_vm_def.h +++ b/Zend/zend_vm_def.h @@ -5513,8 +5513,14 @@ ZEND_VM_HANDLER(74, ZEND_UNSET_VAR, CONST|TMPVAR|CV, UNUSED|CONST|VAR) ZVAL_UNDEF(var); zval_dtor_func_for_ptr(garbage); } else { - GC_ZVAL_CHECK_POSSIBLE_ROOT(var); - ZVAL_UNDEF(var); + zval *z = var; + ZVAL_DEREF(z); + if (Z_COLLECTABLE_P(z) && UNEXPECTED(!Z_GC_INFO_P(z))) { + ZVAL_UNDEF(var); + gc_possible_root(Z_COUNTED_P(z)); + } else { + ZVAL_UNDEF(var); + } } } else { ZVAL_UNDEF(var); |