summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2020-10-05 12:31:48 +0200
committerNikita Popov <nikita.ppv@gmail.com>2020-10-05 12:31:48 +0200
commitfaea5ab837ab6393c8821f85cf8abe2723593e8e (patch)
treedc1ab97ca126aad39ba88203fd8d9fdef7672169
parentd3cf5973282d30b1f9f08904e7aaf2675fb51f93 (diff)
downloadphp-git-faea5ab837ab6393c8821f85cf8abe2723593e8e.tar.gz
Throw from XmlReader::expand() if DOM extension missing
Otherwise it is hard to uphold the arginfo contract for this function -- we cannot simply mirror the zpp call, as the class entry it is based on does not exist.
-rw-r--r--ext/xmlreader/php_xmlreader.c9
-rw-r--r--ext/xmlreader/php_xmlreader.stub.php2
-rw-r--r--ext/xmlreader/php_xmlreader_arginfo.h2
3 files changed, 9 insertions, 4 deletions
diff --git a/ext/xmlreader/php_xmlreader.c b/ext/xmlreader/php_xmlreader.c
index 7b26195409..afc8cc80ba 100644
--- a/ext/xmlreader/php_xmlreader.c
+++ b/ext/xmlreader/php_xmlreader.c
@@ -1132,8 +1132,13 @@ PHP_METHOD(XMLReader, expand)
RETURN_THROWS();
}
#else
- php_error(E_WARNING, "DOM support is not enabled");
- return;
+ zval *dummy;
+ if (zend_parse_parameters(ZEND_NUM_ARGS(), "|z!", &dummy) == FAILURE) {
+ RETURN_THROWS();
+ }
+
+ zend_throw_error(NULL, "XMLReader::expand() requires the DOM extension to be enabled");
+ RETURN_THROWS();
#endif
}
/* }}} */
diff --git a/ext/xmlreader/php_xmlreader.stub.php b/ext/xmlreader/php_xmlreader.stub.php
index 844a8fddca..5e8fda564d 100644
--- a/ext/xmlreader/php_xmlreader.stub.php
+++ b/ext/xmlreader/php_xmlreader.stub.php
@@ -76,6 +76,6 @@ class XMLReader
/** @return bool|XMLReader */
public static function XML(string $source, ?string $encoding = null, int $options = 0) {}
- /** @return DOMNode|false|null */
+ /** @return DOMNode|false */
public function expand(?DOMNode $basenode = null) {}
}
diff --git a/ext/xmlreader/php_xmlreader_arginfo.h b/ext/xmlreader/php_xmlreader_arginfo.h
index 0d12174edf..29ee6bb013 100644
--- a/ext/xmlreader/php_xmlreader_arginfo.h
+++ b/ext/xmlreader/php_xmlreader_arginfo.h
@@ -1,5 +1,5 @@
/* This is a generated file, edit the .stub.php file instead.
- * Stub hash: 65f093ef5916078c10dd4bff7e854561f153ab9c */
+ * Stub hash: 7d549429c217e5c3b9c36013b6737f4e8eeccbb6 */
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_XMLReader_close, 0, 0, 0)
ZEND_END_ARG_INFO()