@@ -549,11 +549,16 @@ bool php_phongo_bson_visit_document(const bson_iter_t *iter ARG_UNUSED, const ch
549
549
TSRMLS_FETCH ();
550
550
551
551
if (bson_iter_init (& child , v_document )) {
552
+ #if PHP_VERSION_ID >= 70000
553
+ zval zv ;
554
+ #endif
552
555
php_phongo_bson_state state = PHONGO_BSON_STATE_INITIALIZER ;
553
556
554
557
state .map = ((php_phongo_bson_state * )data )-> map ;
555
558
556
- #if PHP_VERSION_ID < 70000
559
+ #if PHP_VERSION_ID >= 70000
560
+ state .zchild = & zv ;
561
+ #else
557
562
MAKE_STD_ZVAL (state .zchild );
558
563
#endif
559
564
array_init (state .zchild );
@@ -612,12 +617,18 @@ bool php_phongo_bson_visit_array(const bson_iter_t *iter ARG_UNUSED, const char
612
617
613
618
if (bson_iter_init (& child , v_array )) {
614
619
php_phongo_bson_state state = PHONGO_BSON_STATE_INITIALIZER ;
620
+ #if PHP_VERSION_ID >= 70000
621
+ zval zv ;
622
+ #endif
615
623
616
624
state .map = ((php_phongo_bson_state * )data )-> map ;
617
625
618
- #if PHP_VERSION_ID < 70000
626
+ #if PHP_VERSION_ID >= 70000
627
+ state .zchild = & zv ;
628
+ #else
619
629
MAKE_STD_ZVAL (state .zchild );
620
630
#endif
631
+
621
632
array_init (state .zchild );
622
633
623
634
if (!bson_iter_visit_all (& child , & php_bson_visitors , & state )) {
@@ -1173,15 +1184,20 @@ int bson_to_zval(const unsigned char *data, int data_len, zval **zv)
1173
1184
int retval = 0 ;
1174
1185
php_phongo_bson_state state = PHONGO_BSON_STATE_INITIALIZER ;
1175
1186
1187
+ #if PHP_VERSION_ID >= 70000
1188
+ state .zchild = * zv ;
1189
+ #endif
1176
1190
retval = bson_to_zval_ex (data , data_len , & state );
1191
+ #if PHP_VERSION_ID < 70000
1177
1192
* zv = state .zchild ;
1193
+ #endif
1178
1194
1179
1195
return retval ;
1180
1196
}
1181
1197
int bson_to_zval_ex (const unsigned char * data , int data_len , php_phongo_bson_state * state )
1182
1198
{
1183
1199
#if PHP_VERSION_ID >= 70000
1184
- zval zv ;
1200
+ zval zv ;
1185
1201
#endif
1186
1202
bson_reader_t * reader ;
1187
1203
bson_iter_t iter ;
0 commit comments