]> granicus.if.org Git - php/commitdiff
A cheaper way to reset type flags.
authorDmitry Stogov <dmitry@zend.com>
Tue, 16 Jan 2018 22:58:51 +0000 (01:58 +0300)
committerDmitry Stogov <dmitry@zend.com>
Tue, 16 Jan 2018 22:58:51 +0000 (01:58 +0300)
Zend/zend_API.c
Zend/zend_compile.c
ext/opcache/zend_persist.c
ext/opcache/zend_persist_calc.c
ext/standard/browscap.c

index 73eb748e19a984275e505511f928f89d7882946a..79d6ab9a6c9c8a89ec76f0929904cf32bd80c4a4 100644 (file)
@@ -3624,7 +3624,7 @@ static inline zend_string *zval_make_interned_string(zval *zv) /* {{{ */
        ZEND_ASSERT(Z_TYPE_P(zv) == IS_STRING);
        Z_STR_P(zv) = zend_new_interned_string(Z_STR_P(zv));
        if (ZSTR_IS_INTERNED(Z_STR_P(zv))) {
-               Z_TYPE_FLAGS_P(zv) &= ~ (IS_TYPE_REFCOUNTED | IS_TYPE_COPYABLE);
+               Z_TYPE_FLAGS_P(zv) = 0;
        }
        return Z_STR_P(zv);
 }
index 0beadace95ee15c12cfd2a1b4db805db9a53203d..a574de9db6561705a3a8ad079c0fda96820920b2 100644 (file)
@@ -441,7 +441,7 @@ static inline zend_string *zval_make_interned_string(zval *zv) /* {{{ */
        ZEND_ASSERT(Z_TYPE_P(zv) == IS_STRING);
        Z_STR_P(zv) = zend_new_interned_string(Z_STR_P(zv));
        if (ZSTR_IS_INTERNED(Z_STR_P(zv))) {
-               Z_TYPE_FLAGS_P(zv) &= ~ (IS_TYPE_REFCOUNTED | IS_TYPE_COPYABLE);
+               Z_TYPE_FLAGS_P(zv) = 0;
        }
        return Z_STR_P(zv);
 }
index e9aece79a19f00945bffefacd46f2bb1187a7c9b..136255dbef2f475eb24fa1ffc5f5c3320be505ce 100644 (file)
@@ -283,7 +283,7 @@ static void zend_persist_zval(zval *z)
        switch (Z_TYPE_P(z)) {
                case IS_STRING:
                        zend_accel_store_interned_string(Z_STR_P(z));
-                       Z_TYPE_FLAGS_P(z) &= ~ (IS_TYPE_REFCOUNTED | IS_TYPE_COPYABLE);
+                       Z_TYPE_FLAGS_P(z) = 0;
                        break;
                case IS_ARRAY:
                        new_ptr = zend_shared_alloc_get_xlat_entry(Z_ARR_P(z));
@@ -319,12 +319,12 @@ static void zend_persist_zval(zval *z)
                        new_ptr = zend_shared_alloc_get_xlat_entry(Z_AST_P(z));
                        if (new_ptr) {
                                Z_AST_P(z) = new_ptr;
-                               Z_TYPE_FLAGS_P(z) &= ~ (IS_TYPE_REFCOUNTED | IS_TYPE_COPYABLE);
+                               Z_TYPE_FLAGS_P(z) = 0;
                        } else {
                                zend_ast_ref *old_ref = Z_AST_P(z);
                                Z_ARR_P(z) = zend_accel_memdup(Z_AST_P(z), sizeof(zend_ast_ref));
                                zend_persist_ast(GC_AST(old_ref));
-                               Z_TYPE_FLAGS_P(z) &= ~ (IS_TYPE_REFCOUNTED | IS_TYPE_COPYABLE);
+                               Z_TYPE_FLAGS_P(z) = 0;
                                GC_SET_REFCOUNT(Z_COUNTED_P(z), 2);
                                efree(old_ref);
                        }
index a99a80077e3c4354e7e3683032fcb98486fff2e3..87ce9375eb923f5cebc5e2d5d47dfcbe75b20636 100644 (file)
@@ -124,7 +124,7 @@ static void zend_persist_zval_calc(zval *z)
                case IS_STRING:
                        ADD_INTERNED_STRING(Z_STR_P(z), 0);
                        if (ZSTR_IS_INTERNED(Z_STR_P(z))) {
-                               Z_TYPE_FLAGS_P(z) &= ~ (IS_TYPE_REFCOUNTED | IS_TYPE_COPYABLE);
+                               Z_TYPE_FLAGS_P(z) = 0;
                        }
                        break;
                case IS_ARRAY:
index 32d377de3e37b6d9474103873469dee6cd2995b8..e58a20cd4dcdbbddb30bc32230fb36288508f114 100644 (file)
@@ -330,7 +330,7 @@ static void php_browscap_parser_cb(zval *arg1, zval *arg2, zval *arg3, int callb
                                                new_value = zend_new_interned_string(zend_string_copy(new_value));
                                                if (ZSTR_IS_INTERNED(new_value)) {
                                                        if (new_value == Z_STR_P(arg2)) {
-                                                               Z_TYPE_FLAGS_P(arg2) &= ~(IS_TYPE_REFCOUNTED | IS_TYPE_COPYABLE);
+                                                               Z_TYPE_FLAGS_P(arg2) = 0;
                                                        }
                                                } else {
                                                        zend_string_release(new_value);
@@ -361,7 +361,7 @@ static void php_browscap_parser_cb(zval *arg1, zval *arg2, zval *arg3, int callb
                                                new_key = zend_new_interned_string(zend_string_copy(new_key));
                                                if (ZSTR_IS_INTERNED(new_key)) {
                                                        if (new_key == Z_STR_P(arg1)) {
-                                                               Z_TYPE_FLAGS_P(arg1) &= ~(IS_TYPE_REFCOUNTED | IS_TYPE_COPYABLE);
+                                                               Z_TYPE_FLAGS_P(arg1) = 0;
                                                        }
                                                } else {
                                                        zend_string_release(new_key);
@@ -389,7 +389,7 @@ static void php_browscap_parser_cb(zval *arg1, zval *arg2, zval *arg3, int callb
                        if (persistent) {
                                pattern = zend_new_interned_string(zend_string_copy(pattern));
                                if (ZSTR_IS_INTERNED(pattern)) {
-                                       Z_TYPE_FLAGS_P(arg1) &= ~(IS_TYPE_REFCOUNTED | IS_TYPE_COPYABLE);
+                                       Z_TYPE_FLAGS_P(arg1) = 0;
                                } else {
                                        zend_string_release(pattern);
                                }