@@ -1117,13 +1117,6 @@ static void* ZEND_FASTCALL zend_ast_tree_copy(zend_ast *ast, void *buf)
1117
1117
ZVAL_STR_COPY (& new -> val , zend_ast_get_constant_name (ast ));
1118
1118
Z_LINENO (new -> val ) = zend_ast_get_lineno (ast );
1119
1119
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 ));
1127
1120
} else if (zend_ast_is_list (ast )) {
1128
1121
zend_ast_list * list = zend_ast_get_list (ast );
1129
1122
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)
1141
1134
new -> child [i ] = NULL ;
1142
1135
}
1143
1136
}
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 ));
1144
1144
} else {
1145
1145
uint32_t i , children = zend_ast_get_num_children (ast );
1146
1146
zend_ast * new = (zend_ast * )buf ;
@@ -1191,8 +1191,6 @@ ZEND_API void ZEND_FASTCALL zend_ast_destroy(zend_ast *ast)
1191
1191
goto tail_call ;
1192
1192
} else if (EXPECTED (ast -> kind == ZEND_AST_ZVAL )) {
1193
1193
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 );
1196
1194
} else if (EXPECTED (zend_ast_is_list (ast ))) {
1197
1195
zend_ast_list * list = zend_ast_get_list (ast );
1198
1196
if (list -> children ) {
@@ -1206,6 +1204,8 @@ ZEND_API void ZEND_FASTCALL zend_ast_destroy(zend_ast *ast)
1206
1204
}
1207
1205
} else if (EXPECTED (ast -> kind == ZEND_AST_CONSTANT )) {
1208
1206
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 );
1209
1209
} else if (EXPECTED (ast -> kind >= ZEND_AST_FUNC_DECL )) {
1210
1210
zend_ast_decl * decl = (zend_ast_decl * ) ast ;
1211
1211
0 commit comments