@@ -194,10 +194,8 @@ zend_result dom_document_version_write(dom_object *obj, zval *newval)
194
194
{
195
195
DOM_PROP_NODE (xmlDocPtr , docp , obj );
196
196
197
- zend_string * str = zval_try_get_string (newval );
198
- if (UNEXPECTED (!str )) {
199
- return FAILURE ;
200
- }
197
+ /* Cannot fail because the type is either null or a string. */
198
+ zend_string * str = zval_get_string (newval );
201
199
202
200
if (php_dom_follow_spec_intern (obj )) {
203
201
if (!zend_string_equals_literal (str , "1.0" ) && !zend_string_equals_literal (str , "1.1" )) {
@@ -396,10 +394,8 @@ zend_result dom_document_document_uri_write(dom_object *obj, zval *newval)
396
394
{
397
395
DOM_PROP_NODE (xmlDocPtr , docp , obj );
398
396
399
- zend_string * str = zval_try_get_string (newval );
400
- if (UNEXPECTED (!str )) {
401
- return FAILURE ;
402
- }
397
+ /* Cannot fail because the type is either null or a string. */
398
+ zend_string * str = zval_get_string (newval );
403
399
404
400
if (docp -> URL != NULL ) {
405
401
xmlFree (BAD_CAST docp -> URL );
@@ -1775,12 +1771,20 @@ PHP_METHOD(DOMDocument, xinclude)
1775
1771
1776
1772
php_libxml_invalidate_node_list_cache (intern -> document );
1777
1773
1778
- if (err ) {
1779
- RETVAL_LONG (err );
1774
+ if (php_dom_follow_spec_intern (intern )) {
1775
+ if (err < 0 ) {
1776
+ RETURN_FALSE ;
1777
+ } else {
1778
+ RETURN_LONG (err );
1779
+ }
1780
1780
} else {
1781
- RETVAL_FALSE ;
1781
+ /* Legacy, bizarre return value behaviour */
1782
+ if (err ) {
1783
+ RETURN_LONG (err );
1784
+ } else {
1785
+ RETURN_FALSE ;
1786
+ }
1782
1787
}
1783
-
1784
1788
}
1785
1789
/* }}} */
1786
1790
0 commit comments