@@ -253,6 +253,12 @@ static void zend_file_cache_serialize_attribute(zval *zv,
253253
254254static void zend_file_cache_unserialize_attribute (zval * zv , zend_persistent_script * script , void * buf );
255255
256+ static void zend_file_cache_serialize_type (
257+ zend_type * type , zend_persistent_script * script , zend_file_cache_metainfo * info , void * buf );
258+
259+ static void zend_file_cache_unserialize_type (
260+ zend_type * type , zend_class_entry * scope , zend_persistent_script * script , void * buf );
261+
256262static void * zend_file_cache_serialize_interned (zend_string * str ,
257263 zend_file_cache_metainfo * info )
258264{
@@ -468,6 +474,13 @@ static void zend_file_cache_serialize_attribute(zval *zv,
468474 SERIALIZE_STR (attr -> args [i ].name );
469475 zend_file_cache_serialize_zval (& attr -> args [i ].value , script , info , buf );
470476 }
477+
478+ if (attr -> generic_args ) {
479+ SERIALIZE_PTR (attr -> generic_args );
480+ zend_type * t = attr -> generic_args ;
481+ UNSERIALIZE_PTR (t );
482+ zend_file_cache_serialize_type (t , script , info , buf );
483+ }
471484}
472485
473486static void zend_file_cache_serialize_type (
@@ -515,8 +528,8 @@ static void zend_file_cache_serialize_type(
515528static void zend_file_cache_serialize_generic_type_entry (
516529 zval * zv , zend_persistent_script * script , zend_file_cache_metainfo * info , void * buf )
517530{
518- zend_type * boxed = Z_PTR_P (zv );
519531 SERIALIZE_PTR (Z_PTR_P (zv ));
532+ zend_type * boxed = Z_PTR_P (zv );
520533 UNSERIALIZE_PTR (boxed );
521534 zend_file_cache_serialize_type (boxed , script , info , buf );
522535}
@@ -583,6 +596,9 @@ static void zend_file_cache_serialize_generic_type_table(
583596 if (table -> trait_uses ) {
584597 zend_file_cache_serialize_generic_type_table_ht (& table -> trait_uses , script , info , buf );
585598 }
599+ if (table -> turbofish_args ) {
600+ zend_file_cache_serialize_generic_type_table_ht (& table -> turbofish_args , script , info , buf );
601+ }
586602}
587603
588604static void zend_file_cache_serialize_op_array (zend_op_array * op_array ,
@@ -1495,6 +1511,11 @@ static void zend_file_cache_unserialize_attribute(zval *zv, zend_persistent_scri
14951511 UNSERIALIZE_STR (attr -> args [i ].name );
14961512 zend_file_cache_unserialize_zval (& attr -> args [i ].value , script , buf );
14971513 }
1514+
1515+ if (attr -> generic_args ) {
1516+ UNSERIALIZE_PTR (attr -> generic_args );
1517+ zend_file_cache_unserialize_type (attr -> generic_args , NULL , script , buf );
1518+ }
14981519}
14991520
15001521static void zend_file_cache_unserialize_type (
@@ -1612,6 +1633,10 @@ static void zend_file_cache_unserialize_generic_type_table(
16121633 if (table -> trait_uses ) {
16131634 zend_file_cache_unserialize_generic_type_table_ht (& table -> trait_uses , scope , script , buf );
16141635 }
1636+
1637+ if (table -> turbofish_args ) {
1638+ zend_file_cache_unserialize_generic_type_table_ht (& table -> turbofish_args , scope , script , buf );
1639+ }
16151640}
16161641
16171642static void zend_file_cache_unserialize_op_array (zend_op_array * op_array ,
0 commit comments