@@ -1117,13 +1117,6 @@ static void* ZEND_FASTCALL zend_ast_tree_copy(zend_ast *ast, void *buf)
11171117 ZVAL_STR_COPY (& new -> val , zend_ast_get_constant_name (ast ));
11181118 Z_LINENO (new -> val ) = zend_ast_get_lineno (ast );
11191119 buf = (void * )((char * )buf + sizeof (zend_ast_zval ));
1120- } else if (ast -> kind == ZEND_AST_OP_ARRAY ) {
1121- zend_ast_zval * new = (zend_ast_zval * )buf ;
1122- new -> kind = ZEND_AST_OP_ARRAY ;
1123- new -> attr = ast -> attr ;
1124- ZVAL_COPY (& new -> val , & ((zend_ast_zval * ) ast )-> val );
1125- Z_LINENO (new -> val ) = zend_ast_get_lineno (ast );
1126- buf = (void * )((char * )buf + sizeof (zend_ast_zval ));
11271120 } else if (zend_ast_is_list (ast )) {
11281121 zend_ast_list * list = zend_ast_get_list (ast );
11291122 zend_ast_list * new = (zend_ast_list * )buf ;
@@ -1141,6 +1134,13 @@ static void* ZEND_FASTCALL zend_ast_tree_copy(zend_ast *ast, void *buf)
11411134 new -> child [i ] = NULL ;
11421135 }
11431136 }
1137+ } else if (ast -> kind == ZEND_AST_OP_ARRAY ) {
1138+ zend_ast_zval * new = (zend_ast_zval * )buf ;
1139+ new -> kind = ZEND_AST_OP_ARRAY ;
1140+ new -> attr = ast -> attr ;
1141+ ZVAL_COPY (& new -> val , & ((zend_ast_zval * ) ast )-> val );
1142+ Z_LINENO (new -> val ) = zend_ast_get_lineno (ast );
1143+ buf = (void * )((char * )buf + sizeof (zend_ast_zval ));
11441144 } else {
11451145 uint32_t i , children = zend_ast_get_num_children (ast );
11461146 zend_ast * new = (zend_ast * )buf ;
@@ -1191,8 +1191,6 @@ ZEND_API void ZEND_FASTCALL zend_ast_destroy(zend_ast *ast)
11911191 goto tail_call ;
11921192 } else if (EXPECTED (ast -> kind == ZEND_AST_ZVAL )) {
11931193 zval_ptr_dtor_nogc (zend_ast_get_zval (ast ));
1194- } else if (EXPECTED (ast -> kind == ZEND_AST_OP_ARRAY )) {
1195- zval_ptr_dtor_nogc (& ((zend_ast_zval * )(ast ))-> val );
11961194 } else if (EXPECTED (zend_ast_is_list (ast ))) {
11971195 zend_ast_list * list = zend_ast_get_list (ast );
11981196 if (list -> children ) {
@@ -1206,6 +1204,8 @@ ZEND_API void ZEND_FASTCALL zend_ast_destroy(zend_ast *ast)
12061204 }
12071205 } else if (EXPECTED (ast -> kind == ZEND_AST_CONSTANT )) {
12081206 zend_string_release_ex (zend_ast_get_constant_name (ast ), 0 );
1207+ } else if (EXPECTED (ast -> kind == ZEND_AST_OP_ARRAY )) {
1208+ zval_ptr_dtor_nogc (& ((zend_ast_zval * )(ast ))-> val );
12091209 } else if (EXPECTED (ast -> kind >= ZEND_AST_FUNC_DECL )) {
12101210 zend_ast_decl * decl = (zend_ast_decl * ) ast ;
12111211
0 commit comments