diff options
author | Dmitry Stogov <dmitry@zend.com> | 2015-06-12 12:33:23 +0300 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2015-06-12 12:33:23 +0300 |
commit | 8e10e8f921101e0787c8228d257107a204de3e36 (patch) | |
tree | 35bad438a9a49a94a7f0b1e061538e03a49e2b78 /Zend/zend_API.h | |
parent | 730d7b8fcad30addc80d685e046b5f05bb3d0190 (diff) | |
download | php-git-8e10e8f921101e0787c8228d257107a204de3e36.tar.gz |
Avoid zval duplication in ZVAL_ZVAL() macro (it was necessary only in few places).
Switch from ZVAL_ZVAL() to simpler macros where possible (it makes sense to review remaining places)
Diffstat (limited to 'Zend/zend_API.h')
-rw-r--r-- | Zend/zend_API.h | 35 |
1 files changed, 10 insertions, 25 deletions
diff --git a/Zend/zend_API.h b/Zend/zend_API.h index 7de97ff336..b01b041859 100644 --- a/Zend/zend_API.h +++ b/Zend/zend_API.h @@ -593,20 +593,17 @@ END_EXTERN_C() zval *__z = (z); \ zval *__zv = (zv); \ if (EXPECTED(!Z_ISREF_P(__zv))) { \ - ZVAL_COPY_VALUE(__z, __zv); \ - } else { \ - ZVAL_COPY_VALUE(__z, \ - Z_REFVAL_P(__zv)); \ - } \ - if (copy) { \ - zval_opt_copy_ctor(__z); \ - } \ - if (dtor) { \ - if (!copy) { \ - ZVAL_NULL(__zv); \ + if (copy && !dtor) { \ + ZVAL_COPY(__z, __zv); \ + } else { \ + ZVAL_COPY_VALUE(__z, __zv); \ + } \ + } else { \ + ZVAL_COPY(__z, Z_REFVAL_P(__zv)); \ + if (dtor || !copy) { \ + zval_ptr_dtor(__zv); \ } \ - zval_ptr_dtor(__zv); \ - } \ + } \ } while (0) #define RETVAL_BOOL(b) ZVAL_BOOL(return_value, b) @@ -645,18 +642,6 @@ END_EXTERN_C() #define RETURN_FALSE { RETVAL_FALSE; return; } #define RETURN_TRUE { RETVAL_TRUE; return; } -#define RETVAL_ZVAL_FAST(z) do { \ - zval *_z = (z); \ - if (Z_ISREF_P(_z)) { \ - RETVAL_ZVAL(_z, 1, 0); \ - } else { \ - zval_ptr_dtor(return_value); \ - ZVAL_COPY(return_value, _z); \ - } \ -} while (0) - -#define RETURN_ZVAL_FAST(z) { RETVAL_ZVAL_FAST(z); return; } - #define HASH_OF(p) (Z_TYPE_P(p)==IS_ARRAY ? Z_ARRVAL_P(p) : ((Z_TYPE_P(p)==IS_OBJECT ? Z_OBJ_HT_P(p)->get_properties((p)) : NULL))) #define ZVAL_IS_NULL(z) (Z_TYPE_P(z) == IS_NULL) |