]> granicus.if.org Git - php/commitdiff
Reverted incomplete fix and too strict asserts.
authorDmitry Stogov <dmitry@zend.com>
Wed, 1 Nov 2017 13:18:13 +0000 (16:18 +0300)
committerDmitry Stogov <dmitry@zend.com>
Wed, 1 Nov 2017 13:18:13 +0000 (16:18 +0300)
Zend/zend_compile.c
Zend/zend_variables.c

index bbe69d0a434abaf0110d95443a8493498be148ce..a5dd15f25641d97b2d47ff840a626b5e9a40029e 100644 (file)
@@ -6080,7 +6080,6 @@ void zend_compile_class_const_decl(zend_ast *ast) /* {{{ */
 
                zend_const_expr_to_zval(&value_zv, value_ast);
                if (Z_TYPE(value_zv) == IS_STRING && !ZSTR_IS_INTERNED(Z_STR(value_zv))) {
-                       SEPARATE_STRING(&value_zv);
                        zval_make_interned_string(&value_zv);
                }
                zend_declare_class_constant_ex(ce, name, &value_zv, ast->attr, doc_comment);
index 1d3d2a66a747dc5154f8647c071d9f3e8af8fcc3..7ff0916e7ce7574082361c1de9fff44a96fd5caa 100644 (file)
@@ -34,9 +34,13 @@ ZEND_API void ZEND_FASTCALL _zval_dtor_func(zend_refcounted *p ZEND_FILE_LINE_DC
                case IS_STRING: {
                                zend_string *str = (zend_string*)p;
                                CHECK_ZVAL_STRING_REL(str);
+#if ZEND_RC_DEBUG
                                ZEND_ASSERT(!ZSTR_IS_INTERNED(str));
                                ZEND_ASSERT(GC_REFCOUNT(str) == 0);
                                pefree(str, GC_FLAGS(str) & IS_STR_PERSISTENT);
+#else
+                               zend_string_free(str);
+#endif
                                break;
                        }
                case IS_ARRAY: {