@@ -343,6 +343,11 @@ static void zend_file_cache_serialize_hash(HashTable *ht,
343
343
}
344
344
}
345
345
346
+ static void zend_file_cache_serialize_func (zval * zv ,
347
+ zend_persistent_script * script ,
348
+ zend_file_cache_metainfo * info ,
349
+ void * buf );
350
+
346
351
static void zend_file_cache_serialize_ast (zend_ast * ast ,
347
352
zend_persistent_script * script ,
348
353
zend_file_cache_metainfo * info ,
@@ -363,6 +368,8 @@ static void zend_file_cache_serialize_ast(zend_ast *ast,
363
368
zend_file_cache_serialize_ast (tmp , script , info , buf );
364
369
}
365
370
}
371
+ } else if (ast -> kind == ZEND_AST_OP_ARRAY ) {
372
+ zend_file_cache_serialize_func (& ((zend_ast_zval * )ast )-> val , script , info , buf );
366
373
} else {
367
374
uint32_t children = zend_ast_get_num_children (ast );
368
375
for (i = 0 ; i < children ; i ++ ) {
@@ -468,7 +475,7 @@ static void zend_file_cache_serialize_op_array(zend_op_array *op_arra
468
475
469
476
/* Check whether this op_array has already been serialized. */
470
477
if (IS_SERIALIZED (op_array -> opcodes )) {
471
- ZEND_ASSERT (op_array -> scope && "Only method op_arrays should be shared" );
478
+ // ZEND_ASSERT(op_array->scope && "Only method op_arrays should be shared");
472
479
return ;
473
480
}
474
481
@@ -1226,6 +1233,10 @@ static void zend_file_cache_unserialize_hash(HashTable *ht,
1226
1233
}
1227
1234
}
1228
1235
1236
+ static void zend_file_cache_unserialize_func (zval * zv ,
1237
+ zend_persistent_script * script ,
1238
+ void * buf );
1239
+
1229
1240
static void zend_file_cache_unserialize_ast (zend_ast * ast ,
1230
1241
zend_persistent_script * script ,
1231
1242
void * buf )
@@ -1242,6 +1253,8 @@ static void zend_file_cache_unserialize_ast(zend_ast *ast,
1242
1253
zend_file_cache_unserialize_ast (list -> child [i ], script , buf );
1243
1254
}
1244
1255
}
1256
+ } else if (ast -> kind == ZEND_AST_OP_ARRAY ) {
1257
+ zend_file_cache_unserialize_func (& ((zend_ast_zval * )ast )-> val , script , buf );
1245
1258
} else {
1246
1259
uint32_t children = zend_ast_get_num_children (ast );
1247
1260
for (i = 0 ; i < children ; i ++ ) {
@@ -1355,7 +1368,7 @@ static void zend_file_cache_unserialize_op_array(zend_op_array *op_arr
1355
1368
1356
1369
/* Check whether this op_array has already been unserialized. */
1357
1370
if (IS_UNSERIALIZED (op_array -> opcodes )) {
1358
- ZEND_ASSERT (op_array -> scope && "Only method op_arrays should be shared" );
1371
+ // ZEND_ASSERT(op_array->scope && "Only method op_arrays should be shared");
1359
1372
return ;
1360
1373
}
1361
1374
0 commit comments