@@ -452,6 +452,7 @@ HashTable *php_phongo_writeresult_get_debug_info(zval *object, int *is_temp TSRM
452452 php_phongo_writeresult_t * intern ;
453453 zval retval = zval_used_for_init ;
454454 php_phongo_bson_state state = PHONGO_BSON_STATE_INITIALIZER ;
455+ bson_iter_t iter ;
455456
456457 intern = (php_phongo_writeresult_t * )zend_object_store_get_object (object TSRMLS_CC );
457458 * is_temp = 1 ;
@@ -479,10 +480,21 @@ HashTable *php_phongo_writeresult_get_debug_info(zval *object, int *is_temp TSRM
479480 bson_to_zval (bson_get_data (& intern -> write_result .writeErrors ), intern -> write_result .writeErrors .len , & state );
480481 add_assoc_zval_ex (& retval , ZEND_STRS ("writeErrors" ), state .zchild );
481482
483+ if (!bson_empty0 (& intern -> write_result .writeConcernErrors ) &&
484+ bson_iter_init (& iter , & intern -> write_result .writeConcernErrors ) &&
485+ bson_iter_next (& iter ) &&
486+ BSON_ITER_HOLDS_DOCUMENT (& iter )) {
487+ uint32_t len ;
488+ const uint8_t * data ;
482489
483- MAKE_STD_ZVAL (state .zchild );
484- bson_to_zval (bson_get_data (& intern -> write_result .writeConcernError ), intern -> write_result .writeConcernError .len , & state );
485- add_assoc_zval_ex (& retval , ZEND_STRS ("writeConcernError" ), state .zchild );
490+ bson_iter_document (& iter , & len , & data );
491+
492+ MAKE_STD_ZVAL (state .zchild );
493+ bson_to_zval (data , len , & state );
494+ add_assoc_zval_ex (& retval , ZEND_STRS ("writeConcernError" ), state .zchild );
495+ } else {
496+ add_assoc_null_ex (& retval , ZEND_STRS ("writeConcernError" ));
497+ }
486498
487499 if (intern -> write_concern ) {
488500 zval * write_concern = NULL ;
0 commit comments