From: Dmitry Stogov Date: Tue, 2 May 2017 07:00:54 +0000 (+0300) Subject: Keep Z_IMMUTABLE*() macros for compatibility X-Git-Tag: php-7.2.0alpha2~15^2~56 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=476866783cd8415849297cb8c5f0cc8b54afe9ff;p=php Keep Z_IMMUTABLE*() macros for compatibility --- diff --git a/Zend/zend_types.h b/Zend/zend_types.h index 7860e2b8a2..caa68e22e8 100644 --- a/Zend/zend_types.h +++ b/Zend/zend_types.h @@ -535,6 +535,12 @@ static zend_always_inline zend_uchar zval_get_type(const zval* pz) { #define Z_COPYABLE(zval) ((Z_TYPE_FLAGS(zval) & IS_TYPE_COPYABLE) != 0) #define Z_COPYABLE_P(zval_p) Z_COPYABLE(*(zval_p)) +/* deprecated: (IMMUTABLE is the same as COPYABLE && !REFCOUED) */ +#define Z_IMMUTABLE(zval) ((Z_TYPE_FLAGS(zval) & (IS_TYPE_REFCOUNTED|IS_TYPE_COPYABLE)) == IS_TYPE_COPYABLE) +#define Z_IMMUTABLE_P(zval_p) Z_IMMUTABLE(*(zval_p)) +#define Z_OPT_IMMUTABLE(zval) Z_IMMUTABLE(zval_p) +#define Z_OPT_IMMUTABLE_P(zval_p) Z_IMMUTABLE(*(zval_p)) + /* the following Z_OPT_* macros make better code when Z_TYPE_INFO accessed before */ #define Z_OPT_TYPE(zval) (Z_TYPE_INFO(zval) & Z_TYPE_MASK) #define Z_OPT_TYPE_P(zval_p) Z_OPT_TYPE(*(zval_p))