@@ -361,14 +361,7 @@ int dom_document_encoding_write(dom_object *obj, zval *newval TSRMLS_DC)
361361 return FAILURE ;
362362 }
363363
364- if (newval -> type != IS_STRING ) {
365- if (Z_REFCOUNT_P (newval ) > 1 ) {
366- value_copy = * newval ;
367- zval_copy_ctor (& value_copy );
368- newval = & value_copy ;
369- }
370- convert_to_string (newval );
371- }
364+ convert_to_string_copy (newval , value_copy );
372365
373366 handler = xmlFindCharEncodingHandler (Z_STRVAL_P (newval ));
374367
@@ -428,12 +421,7 @@ int dom_document_standalone_write(dom_object *obj, zval *newval TSRMLS_DC)
428421 return FAILURE ;
429422 }
430423
431- if (Z_REFCOUNT_P (newval ) > 1 ) {
432- value_copy = * newval ;
433- zval_copy_ctor (& value_copy );
434- newval = & value_copy ;
435- }
436- convert_to_long (newval );
424+ convert_to_long_copy (newval , value_copy );
437425
438426 standalone = Z_LVAL_P (newval );
439427 if (standalone > 0 ) {
@@ -500,14 +488,7 @@ int dom_document_version_write(dom_object *obj, zval *newval TSRMLS_DC)
500488 xmlFree ((xmlChar * ) docp -> version );
501489 }
502490
503- if (newval -> type != IS_STRING ) {
504- if (Z_REFCOUNT_P (newval ) > 1 ) {
505- value_copy = * newval ;
506- zval_copy_ctor (& value_copy );
507- newval = & value_copy ;
508- }
509- convert_to_string (newval );
510- }
491+ convert_to_string_copy (newval , value_copy );
511492
512493 docp -> version = xmlStrdup ((const xmlChar * ) Z_STRVAL_P (newval ));
513494
@@ -544,12 +525,7 @@ int dom_document_strict_error_checking_write(dom_object *obj, zval *newval TSRML
544525 zval value_copy ;
545526 dom_doc_propsptr doc_prop ;
546527
547- if (Z_REFCOUNT_P (newval ) > 1 ) {
548- value_copy = * newval ;
549- zval_copy_ctor (& value_copy );
550- newval = & value_copy ;
551- }
552- convert_to_boolean (newval );
528+ convert_to_boolean_copy (newval , value_copy );
553529
554530 if (obj -> document ) {
555531 doc_prop = dom_get_doc_props (obj -> document );
@@ -587,12 +563,7 @@ int dom_document_format_output_write(dom_object *obj, zval *newval TSRMLS_DC)
587563 zval value_copy ;
588564 dom_doc_propsptr doc_prop ;
589565
590- if (Z_REFCOUNT_P (newval ) > 1 ) {
591- value_copy = * newval ;
592- zval_copy_ctor (& value_copy );
593- newval = & value_copy ;
594- }
595- convert_to_boolean (newval );
566+ convert_to_boolean_copy (newval , value_copy );
596567
597568 if (obj -> document ) {
598569 doc_prop = dom_get_doc_props (obj -> document );
@@ -629,12 +600,7 @@ int dom_document_validate_on_parse_write(dom_object *obj, zval *newval TSRMLS_DC
629600 zval value_copy ;
630601 dom_doc_propsptr doc_prop ;
631602
632- if (Z_REFCOUNT_P (newval ) > 1 ) {
633- value_copy = * newval ;
634- zval_copy_ctor (& value_copy );
635- newval = & value_copy ;
636- }
637- convert_to_boolean (newval );
603+ convert_to_boolean_copy (newval , value_copy );
638604
639605 if (obj -> document ) {
640606 doc_prop = dom_get_doc_props (obj -> document );
@@ -671,12 +637,7 @@ int dom_document_resolve_externals_write(dom_object *obj, zval *newval TSRMLS_DC
671637 zval value_copy ;
672638 dom_doc_propsptr doc_prop ;
673639
674- if (Z_REFCOUNT_P (newval ) > 1 ) {
675- value_copy = * newval ;
676- zval_copy_ctor (& value_copy );
677- newval = & value_copy ;
678- }
679- convert_to_boolean (newval );
640+ convert_to_boolean_copy (newval , value_copy );
680641
681642 if (obj -> document ) {
682643 doc_prop = dom_get_doc_props (obj -> document );
@@ -713,12 +674,7 @@ int dom_document_preserve_whitespace_write(dom_object *obj, zval *newval TSRMLS_
713674 zval value_copy ;
714675 dom_doc_propsptr doc_prop ;
715676
716- if (Z_REFCOUNT_P (newval ) > 1 ) {
717- value_copy = * newval ;
718- zval_copy_ctor (& value_copy );
719- newval = & value_copy ;
720- }
721- convert_to_boolean (newval );
677+ convert_to_boolean_copy (newval , value_copy );
722678
723679 if (obj -> document ) {
724680 doc_prop = dom_get_doc_props (obj -> document );
@@ -755,12 +711,7 @@ int dom_document_recover_write(dom_object *obj, zval *newval TSRMLS_DC)
755711 zval value_copy ;
756712 dom_doc_propsptr doc_prop ;
757713
758- if (Z_REFCOUNT_P (newval ) > 1 ) {
759- value_copy = * newval ;
760- zval_copy_ctor (& value_copy );
761- newval = & value_copy ;
762- }
763- convert_to_boolean (newval );
714+ convert_to_boolean_copy (newval , value_copy );
764715
765716 if (obj -> document ) {
766717 doc_prop = dom_get_doc_props (obj -> document );
@@ -797,12 +748,7 @@ int dom_document_substitue_entities_write(dom_object *obj, zval *newval TSRMLS_D
797748 zval value_copy ;
798749 dom_doc_propsptr doc_prop ;
799750
800- if (Z_REFCOUNT_P (newval ) > 1 ) {
801- value_copy = * newval ;
802- zval_copy_ctor (& value_copy );
803- newval = & value_copy ;
804- }
805- convert_to_boolean (newval );
751+ convert_to_boolean_copy (newval , value_copy );
806752
807753 if (obj -> document ) {
808754 doc_prop = dom_get_doc_props (obj -> document );
@@ -861,14 +807,7 @@ int dom_document_document_uri_write(dom_object *obj, zval *newval TSRMLS_DC)
861807 xmlFree ((xmlChar * ) docp -> URL );
862808 }
863809
864- if (newval -> type != IS_STRING ) {
865- if (Z_REFCOUNT_P (newval ) > 1 ) {
866- value_copy = * newval ;
867- zval_copy_ctor (& value_copy );
868- newval = & value_copy ;
869- }
870- convert_to_string (newval );
871- }
810+ convert_to_string_copy (newval , value_copy );
872811
873812 docp -> URL = xmlStrdup ((const xmlChar * ) Z_STRVAL_P (newval ));
874813
0 commit comments