diff options
author | Dmitry Stogov <dmitry@zend.com> | 2017-11-03 21:02:55 +0300 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2017-11-03 21:02:55 +0300 |
commit | d3fa900780994ae812b5314900556a7f1bfb916e (patch) | |
tree | 3643d8d47dc9d0106b52816b4fbc969340cb5098 /Zend/zend_ast.c | |
parent | 7fba7209e1d8409aaea236527125999b8f480785 (diff) | |
download | php-git-d3fa900780994ae812b5314900556a7f1bfb916e.tar.gz |
Removed workaraouns for inconsistent zvals (REFCOUNTED+INTERNED). They should be fixed now.
Diffstat (limited to 'Zend/zend_ast.c')
-rw-r--r-- | Zend/zend_ast.c | 13 |
1 files changed, 1 insertions, 12 deletions
diff --git a/Zend/zend_ast.c b/Zend/zend_ast.c index f4e7c09a83..68db0e023f 100644 --- a/Zend/zend_ast.c +++ b/Zend/zend_ast.c @@ -557,24 +557,13 @@ ZEND_API zend_ast_ref *zend_ast_copy(zend_ast *ast) } ZEND_API void zend_ast_destroy(zend_ast *ast) { - zval *zv; - if (!ast) { return; } switch (ast->kind) { case ZEND_AST_ZVAL: - /* Destroy value without using GC: When opcache moves arrays into SHM it will - * free the zend_array structure, so references to it from outside the op array - * become invalid. GC would cause such a reference in the root buffer. */ - zv = zend_ast_get_zval(ast); - if (Z_TYPE_P(zv) == IS_STRING) { - /* Compiler may keep REFCOUNTED zvals with INTERNED strings */ - zend_string_release(Z_STR_P(zv)); - } else { - zval_ptr_dtor_nogc(zv); - } + zval_ptr_dtor_nogc(zend_ast_get_zval(ast)); break; case ZEND_AST_CONSTANT: zend_string_release(zend_ast_get_constant_name(ast)); |