Skip to content

Commit 29977f0

Browse files
committed
Remove AST copying support for zend_ast_decl
This is unreachable / untestable now.
1 parent 5012eff commit 29977f0

File tree

4 files changed

+13
-65
lines changed

4 files changed

+13
-65
lines changed

Zend/zend_ast.c

Lines changed: 5 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1104,13 +1104,8 @@ static size_t ZEND_FASTCALL zend_ast_tree_size(zend_ast *ast)
11041104
}
11051105
}
11061106
} else if (zend_ast_is_decl(ast)) {
1107-
zend_ast_decl *decl = (zend_ast_decl*)ast;
1108-
size = sizeof(zend_ast_decl);
1109-
for (size_t i = 0; i < 5; i++) {
1110-
if (decl->child[i]) {
1111-
size += zend_ast_tree_size(decl->child[i]);
1112-
}
1113-
}
1107+
/* Not implemented. */
1108+
ZEND_UNREACHABLE();
11141109
} else {
11151110
uint32_t i, children = zend_ast_get_num_children(ast);
11161111

@@ -1167,33 +1162,8 @@ static void* ZEND_FASTCALL zend_ast_tree_copy(zend_ast *ast, void *buf)
11671162
new->original_ast = zend_string_copy(old->original_ast);
11681163
buf = (void*)((char*)buf + sizeof(zend_ast_op_array));
11691164
} else if (zend_ast_is_decl(ast)) {
1170-
zend_ast_decl *old = (zend_ast_decl*)ast;
1171-
zend_ast_decl *new = (zend_ast_decl*)buf;
1172-
new->kind = old->kind;
1173-
new->attr = old->attr;
1174-
new->start_lineno = old->start_lineno;
1175-
new->end_lineno = old->end_lineno;
1176-
new->flags = old->flags;
1177-
if (old->doc_comment) {
1178-
new->doc_comment = zend_string_copy(old->doc_comment);
1179-
} else {
1180-
new->doc_comment = NULL;
1181-
}
1182-
if (old->name) {
1183-
new->name = zend_string_copy(old->name);
1184-
} else {
1185-
new->name = NULL;
1186-
}
1187-
1188-
buf = (void*)((char*)buf + sizeof(zend_ast_decl));
1189-
for (size_t i = 0; i < 5; i++) {
1190-
if (old->child[i]) {
1191-
new->child[i] = (zend_ast*)buf;
1192-
buf = zend_ast_tree_copy(old->child[i], buf);
1193-
} else {
1194-
new->child[i] = NULL;
1195-
}
1196-
}
1165+
/* Not implemented. */
1166+
ZEND_UNREACHABLE();
11971167
} else {
11981168
uint32_t i, children = zend_ast_get_num_children(ast);
11991169
zend_ast *new = (zend_ast*)buf;
@@ -1259,7 +1229,7 @@ ZEND_API void ZEND_FASTCALL zend_ast_destroy(zend_ast *ast)
12591229
zend_string_release_ex(zend_ast_get_constant_name(ast), 0);
12601230
} else if (EXPECTED(ast->kind == ZEND_AST_OP_ARRAY)) {
12611231
zend_string_release_ex(zend_ast_get_op_array(ast)->original_ast, 0);
1262-
} else if (zend_ast_is_decl(ast)) {
1232+
} else if (EXPECTED(zend_ast_is_decl(ast))) {
12631233
zend_ast_decl *decl = (zend_ast_decl *) ast;
12641234

12651235
if (decl->name) {

ext/opcache/zend_file_cache.c

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -369,15 +369,8 @@ static void zend_file_cache_serialize_ast(zend_ast *ast,
369369

370370
SERIALIZE_STR(((zend_ast_op_array*)ast)->original_ast);
371371
} else if (zend_ast_is_decl(ast)) {
372-
zend_ast_decl *decl = (zend_ast_decl*)ast;
373-
for (i = 0; i < 5; i++) {
374-
if (decl->child[i] && !IS_SERIALIZED(decl->child[i])) {
375-
SERIALIZE_PTR(decl->child[i]);
376-
tmp = decl->child[i];
377-
UNSERIALIZE_PTR(tmp);
378-
zend_file_cache_serialize_ast(tmp, script, info, buf);
379-
}
380-
}
372+
/* Not implemented. */
373+
ZEND_UNREACHABLE();
381374
} else {
382375
uint32_t children = zend_ast_get_num_children(ast);
383376
for (i = 0; i < children; i++) {
@@ -1263,13 +1256,8 @@ static void zend_file_cache_unserialize_ast(zend_ast *ast,
12631256

12641257
UNSERIALIZE_STR(((zend_ast_op_array*)ast)->original_ast);
12651258
} else if (zend_ast_is_decl(ast)) {
1266-
zend_ast_decl *decl = (zend_ast_decl*)ast;
1267-
for (i = 0; i < 5; i++) {
1268-
if (decl->child[i] && !IS_UNSERIALIZED(decl->child[i])) {
1269-
UNSERIALIZE_PTR(decl->child[i]);
1270-
zend_file_cache_unserialize_ast(decl->child[i], script, buf);
1271-
}
1272-
}
1259+
/* Not implemented. */
1260+
ZEND_UNREACHABLE();
12731261
} else {
12741262
uint32_t children = zend_ast_get_num_children(ast);
12751263
for (i = 0; i < children; i++) {

ext/opcache/zend_persist.c

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -197,13 +197,8 @@ static zend_ast *zend_persist_ast(zend_ast *ast)
197197
zend_accel_store_interned_string(copy->original_ast);
198198
node = (zend_ast *) copy;
199199
} else if (zend_ast_is_decl(ast)) {
200-
zend_ast_decl *copy = zend_shared_memdup(ast, sizeof(zend_ast_decl));
201-
for (i = 0; i < 5; i++) {
202-
if (copy->child[i]) {
203-
copy->child[i] = zend_persist_ast(copy->child[i]);
204-
}
205-
}
206-
node = (zend_ast *) copy;
200+
/* Not implemented. */
201+
ZEND_UNREACHABLE();
207202
} else {
208203
uint32_t children = zend_ast_get_num_children(ast);
209204
node = zend_shared_memdup(ast, zend_ast_size(children));

ext/opcache/zend_persist_calc.c

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -93,13 +93,8 @@ static void zend_persist_ast_calc(zend_ast *ast)
9393
zend_persist_op_array_calc(&z);
9494
ADD_INTERNED_STRING(zend_ast_get_op_array(ast)->original_ast);
9595
} else if (zend_ast_is_decl(ast)) {
96-
zend_ast_decl *decl = (zend_ast_decl*)ast;
97-
ADD_SIZE(sizeof(zend_ast_decl));
98-
for (size_t i = 0; i < 5; i++) {
99-
if (decl->child[i]) {
100-
zend_persist_ast_calc(decl->child[i]);
101-
}
102-
}
96+
/* Not implemented. */
97+
ZEND_UNREACHABLE();
10398
} else {
10499
uint32_t children = zend_ast_get_num_children(ast);
105100
ADD_SIZE(zend_ast_size(children));

0 commit comments

Comments
 (0)