@@ -596,8 +596,9 @@ PHP_METHOD(SplFixedArray, __serialize)
596
596
RETURN_THROWS ();
597
597
}
598
598
599
- uint32_t property_num = zend_hash_num_elements (intern -> std .properties );
600
- array_init_size (return_value , intern -> array .size + property_num );
599
+ uint32_t num_properties =
600
+ intern -> std .properties ? zend_hash_num_elements (intern -> std .properties ) : 0 ;
601
+ array_init_size (return_value , intern -> array .size + num_properties );
601
602
602
603
/* elements */
603
604
for (zend_long i = 0 ; i < intern -> array .size ; i ++ ) {
@@ -607,10 +608,12 @@ PHP_METHOD(SplFixedArray, __serialize)
607
608
}
608
609
609
610
/* members */
610
- ZEND_HASH_FOREACH_STR_KEY_VAL (intern -> std .properties , key , current ) {
611
- zend_hash_add (Z_ARRVAL_P (return_value ), key , current );
612
- Z_TRY_ADDREF_P (current );
613
- } ZEND_HASH_FOREACH_END ();
611
+ if (intern -> std .properties ) {
612
+ ZEND_HASH_FOREACH_STR_KEY_VAL (intern -> std .properties , key , current ) {
613
+ zend_hash_add (Z_ARRVAL_P (return_value ), key , current );
614
+ Z_TRY_ADDREF_P (current );
615
+ } ZEND_HASH_FOREACH_END ();
616
+ }
614
617
}
615
618
616
619
PHP_METHOD (SplFixedArray , __unserialize )
0 commit comments