diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2020-10-05 12:31:48 +0200 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2020-10-05 12:31:48 +0200 |
commit | faea5ab837ab6393c8821f85cf8abe2723593e8e (patch) | |
tree | dc1ab97ca126aad39ba88203fd8d9fdef7672169 | |
parent | d3cf5973282d30b1f9f08904e7aaf2675fb51f93 (diff) | |
download | php-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.c | 9 | ||||
-rw-r--r-- | ext/xmlreader/php_xmlreader.stub.php | 2 | ||||
-rw-r--r-- | ext/xmlreader/php_xmlreader_arginfo.h | 2 |
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() |