Skip to content

Commit cb6aaea

Browse files
committed
fixup! Support first-class callables in const-expressions
1 parent 76e9d24 commit cb6aaea

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

ext/opcache/zend_file_cache.c

+6
Original file line numberDiff line numberDiff line change
@@ -366,6 +366,9 @@ static void zend_file_cache_serialize_ast(zend_ast *ast,
366366
} else if (ast->kind == ZEND_AST_OP_ARRAY) {
367367
/* The op_array itself will be serialized as part of the dynamic_func_defs. */
368368
SERIALIZE_PTR(zend_ast_get_op_array(ast)->op_array);
369+
} else if (ast->kind == ZEND_AST_CALLABLE_CONVERT) {
370+
zend_ast_fcc *fcc = (zend_ast_fcc*)ast;
371+
ZEND_MAP_PTR_INIT(fcc->fptr, NULL);
369372
} else if (zend_ast_is_decl(ast)) {
370373
/* Not implemented. */
371374
ZEND_UNREACHABLE();
@@ -1251,6 +1254,9 @@ static void zend_file_cache_unserialize_ast(zend_ast *ast,
12511254
} else if (ast->kind == ZEND_AST_OP_ARRAY) {
12521255
/* The op_array itself will be unserialized as part of the dynamic_func_defs. */
12531256
UNSERIALIZE_PTR(zend_ast_get_op_array(ast)->op_array);
1257+
} else if (ast->kind == ZEND_AST_CALLABLE_CONVERT) {
1258+
zend_ast_fcc *fcc = (zend_ast_fcc*)ast;
1259+
ZEND_MAP_PTR_NEW(fcc->fptr);
12541260
} else if (zend_ast_is_decl(ast)) {
12551261
/* Not implemented. */
12561262
ZEND_UNREACHABLE();

0 commit comments

Comments
 (0)