diff options
Diffstat (limited to 'Zend/zend.h')
| -rw-r--r-- | Zend/zend.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/Zend/zend.h b/Zend/zend.h index 27caadc51c..09db94d836 100644 --- a/Zend/zend.h +++ b/Zend/zend.h @@ -696,7 +696,10 @@ END_EXTERN_C() zval *_zv = (zv); \ if (Z_REFCOUNTED_P(_zv)) { \ if (Z_REFCOUNT_P(_zv) > 1) { \ - if (Z_TYPE_P(_zv) == IS_OBJECT || \ + if (Z_ISREF_P(_zv)) { \ + Z_DELREF_P(_zv); \ + ZVAL_DUP(_zv, Z_REFVAL_P(_zv)); \ + } else if (Z_TYPE_P(_zv) == IS_OBJECT ||\ Z_TYPE_P(_zv) == IS_RESOURCE) { \ Z_ADDREF_P(_zv); \ } else { \ |
