]> granicus.if.org Git - php/commitdiff
Keep Z_IMMUTABLE*() macros for compatibility
authorDmitry Stogov <dmitry@zend.com>
Tue, 2 May 2017 07:00:54 +0000 (10:00 +0300)
committerDmitry Stogov <dmitry@zend.com>
Tue, 2 May 2017 07:00:54 +0000 (10:00 +0300)
Zend/zend_types.h

index 7860e2b8a2472c54c13a58a16e5fcca07b090fb8..caa68e22e84e24c6eaa9b5da41471fcb31941f8e 100644 (file)
@@ -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))