} else if (zend_ast_is_list(ast)) {
zend_ast_list *list = zend_ast_get_list(ast);
for (i = 0; i < list->children; i++) {
- if (list->child[i] && !IS_UNSERIALIZED(list->child[i])) {
- if (list->child[i]) {
- list->child[i] = zend_file_cache_unserialize_ast(list->child[i], script, buf);
++ if (list->child[i] && IS_SERIALIZED(list->child[i])) {
+ UNSERIALIZE_PTR(list->child[i]);
+ zend_file_cache_unserialize_ast(list->child[i], script, buf);
}
}
} else {
uint32_t children = zend_ast_get_num_children(ast);
for (i = 0; i < children; i++) {
- if (ast->child[i] && !IS_UNSERIALIZED(ast->child[i])) {
- if (ast->child[i]) {
- ast->child[i] = zend_file_cache_unserialize_ast(ast->child[i], script, buf);
++ if (ast->child[i] && IS_SERIALIZED(ast->child[i])) {
+ UNSERIALIZE_PTR(ast->child[i]);
+ zend_file_cache_unserialize_ast(ast->child[i], script, buf);
}
}
}
{
switch (Z_TYPE_P(zv)) {
case IS_STRING:
- if (!IS_UNSERIALIZED(Z_STR_P(zv))) {
- case IS_CONSTANT:
+ if (IS_SERIALIZED(Z_STR_P(zv))) {
UNSERIALIZE_STR(Z_STR_P(zv));
}
break;
}
break;
case IS_CONSTANT_AST:
- if (!IS_UNSERIALIZED(Z_AST_P(zv))) {
+ if (IS_SERIALIZED(Z_AST_P(zv))) {
- zend_ast_ref *ast;
-
UNSERIALIZE_PTR(Z_AST_P(zv));
- ast = Z_AST_P(zv);
- if (IS_SERIALIZED(ast->ast)) {
- ast->ast = zend_file_cache_unserialize_ast(ast->ast, script, buf);
- }
+ zend_file_cache_unserialize_ast(Z_ASTVAL_P(zv), script, buf);
}
break;
}