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