@@ -485,6 +485,7 @@ static void zend_file_cache_serialize_op_array(zend_op_array *op_arra
485
485
SERIALIZE_ATTRIBUTES (op_array -> attributes );
486
486
SERIALIZE_PTR (op_array -> try_catch_array );
487
487
SERIALIZE_PTR (op_array -> prototype );
488
+ SERIALIZE_PTR (op_array -> prop_info );
488
489
return ;
489
490
}
490
491
zend_shared_alloc_register_xlat_entry (op_array -> opcodes , op_array -> opcodes );
@@ -636,6 +637,7 @@ static void zend_file_cache_serialize_op_array(zend_op_array *op_arra
636
637
SERIALIZE_ATTRIBUTES (op_array -> attributes );
637
638
SERIALIZE_PTR (op_array -> try_catch_array );
638
639
SERIALIZE_PTR (op_array -> prototype );
640
+ SERIALIZE_PTR (op_array -> prop_info );
639
641
}
640
642
}
641
643
@@ -672,6 +674,20 @@ static void zend_file_cache_serialize_prop_info(zval *zv,
672
674
SERIALIZE_STR (prop -> doc_comment );
673
675
}
674
676
SERIALIZE_ATTRIBUTES (prop -> attributes );
677
+ SERIALIZE_PTR (prop -> prototype );
678
+ if (prop -> hooks ) {
679
+ SERIALIZE_PTR (prop -> hooks );
680
+ zend_function * * hooks = prop -> hooks ;
681
+ UNSERIALIZE_PTR (hooks );
682
+ for (uint32_t i = 0 ; i < ZEND_PROPERTY_HOOK_COUNT ; i ++ ) {
683
+ if (hooks [i ]) {
684
+ SERIALIZE_PTR (hooks [i ]);
685
+ zend_function * hook = hooks [i ];
686
+ UNSERIALIZE_PTR (hook );
687
+ zend_file_cache_serialize_op_array (& hook -> op_array , script , info , buf );
688
+ }
689
+ }
690
+ }
675
691
zend_file_cache_serialize_type (& prop -> type , script , info , buf );
676
692
}
677
693
}
@@ -1346,6 +1362,7 @@ static void zend_file_cache_unserialize_op_array(zend_op_array *op_arr
1346
1362
UNSERIALIZE_ATTRIBUTES (op_array -> attributes );
1347
1363
UNSERIALIZE_PTR (op_array -> try_catch_array );
1348
1364
UNSERIALIZE_PTR (op_array -> prototype );
1365
+ UNSERIALIZE_PTR (op_array -> prop_info );
1349
1366
return ;
1350
1367
}
1351
1368
@@ -1480,6 +1497,7 @@ static void zend_file_cache_unserialize_op_array(zend_op_array *op_arr
1480
1497
UNSERIALIZE_ATTRIBUTES (op_array -> attributes );
1481
1498
UNSERIALIZE_PTR (op_array -> try_catch_array );
1482
1499
UNSERIALIZE_PTR (op_array -> prototype );
1500
+ UNSERIALIZE_PTR (op_array -> prop_info );
1483
1501
}
1484
1502
}
1485
1503
@@ -1512,6 +1530,16 @@ static void zend_file_cache_unserialize_prop_info(zval *zv,
1512
1530
UNSERIALIZE_STR (prop -> doc_comment );
1513
1531
}
1514
1532
UNSERIALIZE_ATTRIBUTES (prop -> attributes );
1533
+ UNSERIALIZE_PTR (prop -> prototype );
1534
+ if (prop -> hooks ) {
1535
+ UNSERIALIZE_PTR (prop -> hooks );
1536
+ for (uint32_t i = 0 ; i < ZEND_PROPERTY_HOOK_COUNT ; i ++ ) {
1537
+ if (prop -> hooks [i ]) {
1538
+ UNSERIALIZE_PTR (prop -> hooks [i ]);
1539
+ zend_file_cache_unserialize_op_array (& prop -> hooks [i ]-> op_array , script , buf );
1540
+ }
1541
+ }
1542
+ }
1515
1543
zend_file_cache_unserialize_type (& prop -> type , prop -> ce , script , buf );
1516
1544
}
1517
1545
}
0 commit comments