From ba0d90f15f421528a2cdb21508dab7a45e5b648b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1t=C3=A9=20Kocsis?= Date: Tue, 7 Jun 2022 09:28:39 +0200 Subject: [PATCH] Declare ext/libxml constants in stubs --- ext/libxml/libxml.c | 49 +----------- ext/libxml/libxml.stub.php | 149 ++++++++++++++++++++++++++++++++++++ ext/libxml/libxml_arginfo.h | 41 +++++++++- 3 files changed, 193 insertions(+), 46 deletions(-) diff --git a/ext/libxml/libxml.c b/ext/libxml/libxml.c index 99d5696ebcf31..21ad5df2c3ce0 100644 --- a/ext/libxml/libxml.c +++ b/ext/libxml/libxml.c @@ -41,12 +41,14 @@ #endif #include "php_libxml.h" -#include "libxml_arginfo.h" +#define PHP_LIBXML_LOADED_VERSION ((char *)xmlParserVersion) #define PHP_LIBXML_ERROR 0 #define PHP_LIBXML_CTX_ERROR 1 #define PHP_LIBXML_CTX_WARNING 2 +#include "libxml_arginfo.h" + /* a true global for initialization */ static int _php_libxml_initialized = 0; static int _php_libxml_per_request_initialization = 1; @@ -798,50 +800,7 @@ static PHP_MINIT_FUNCTION(libxml) { php_libxml_initialize(); - REGISTER_LONG_CONSTANT("LIBXML_VERSION", LIBXML_VERSION, CONST_CS | CONST_PERSISTENT); - REGISTER_STRING_CONSTANT("LIBXML_DOTTED_VERSION", LIBXML_DOTTED_VERSION, CONST_CS | CONST_PERSISTENT); - REGISTER_STRING_CONSTANT("LIBXML_LOADED_VERSION", (char *)xmlParserVersion, CONST_CS | CONST_PERSISTENT); - - /* For use with loading xml */ - REGISTER_LONG_CONSTANT("LIBXML_NOENT", XML_PARSE_NOENT, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("LIBXML_DTDLOAD", XML_PARSE_DTDLOAD, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("LIBXML_DTDATTR", XML_PARSE_DTDATTR, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("LIBXML_DTDVALID", XML_PARSE_DTDVALID, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("LIBXML_NOERROR", XML_PARSE_NOERROR, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("LIBXML_NOWARNING", XML_PARSE_NOWARNING, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("LIBXML_NOBLANKS", XML_PARSE_NOBLANKS, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("LIBXML_XINCLUDE", XML_PARSE_XINCLUDE, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("LIBXML_NSCLEAN", XML_PARSE_NSCLEAN, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("LIBXML_NOCDATA", XML_PARSE_NOCDATA, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("LIBXML_NONET", XML_PARSE_NONET, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("LIBXML_PEDANTIC", XML_PARSE_PEDANTIC, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("LIBXML_COMPACT", XML_PARSE_COMPACT, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("LIBXML_NOXMLDECL", XML_SAVE_NO_DECL, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("LIBXML_PARSEHUGE", XML_PARSE_HUGE, CONST_CS | CONST_PERSISTENT); -#if LIBXML_VERSION >= 20900 - REGISTER_LONG_CONSTANT("LIBXML_BIGLINES", XML_PARSE_BIG_LINES, CONST_CS | CONST_PERSISTENT); -#endif - REGISTER_LONG_CONSTANT("LIBXML_NOEMPTYTAG", LIBXML_SAVE_NOEMPTYTAG, CONST_CS | CONST_PERSISTENT); - - /* Schema validation options */ -#ifdef LIBXML_SCHEMAS_ENABLED - REGISTER_LONG_CONSTANT("LIBXML_SCHEMA_CREATE", XML_SCHEMA_VAL_VC_I_CREATE, CONST_CS | CONST_PERSISTENT); -#endif - - /* Additional constants for use with loading html */ -#if LIBXML_VERSION >= 20707 - REGISTER_LONG_CONSTANT("LIBXML_HTML_NOIMPLIED", HTML_PARSE_NOIMPLIED, CONST_CS | CONST_PERSISTENT); -#endif - -#if LIBXML_VERSION >= 20708 - REGISTER_LONG_CONSTANT("LIBXML_HTML_NODEFDTD", HTML_PARSE_NODEFDTD, CONST_CS | CONST_PERSISTENT); -#endif - - /* Error levels */ - REGISTER_LONG_CONSTANT("LIBXML_ERR_NONE", XML_ERR_NONE, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("LIBXML_ERR_WARNING", XML_ERR_WARNING, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("LIBXML_ERR_ERROR", XML_ERR_ERROR, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("LIBXML_ERR_FATAL", XML_ERR_FATAL, CONST_CS | CONST_PERSISTENT); + register_libxml_symbols(module_number); libxmlerror_class_entry = register_class_LibXMLError(); diff --git a/ext/libxml/libxml.stub.php b/ext/libxml/libxml.stub.php index 6c63862115d6c..02ceee6f4ad91 100644 --- a/ext/libxml/libxml.stub.php +++ b/ext/libxml/libxml.stub.php @@ -2,6 +2,155 @@ /** @generate-class-entries */ +/** + * @var int + * @cname LIBXML_VERSION + */ +const LIBXML_VERSION = UNKNOWN; +/** + * @var string + * @cname LIBXML_DOTTED_VERSION + */ +const LIBXML_DOTTED_VERSION = UNKNOWN; +/** + * @var string + * @cname PHP_LIBXML_LOADED_VERSION + */ +const LIBXML_LOADED_VERSION = UNKNOWN; + +/** + * @var int + * @cname XML_PARSE_NOENT + */ +const LIBXML_NOENT = UNKNOWN; +/** + * @var int + * @cname XML_PARSE_DTDLOAD + */ +const LIBXML_DTDLOAD = UNKNOWN; +/** + * @var int + * @cname XML_PARSE_DTDATTR + */ +const LIBXML_DTDATTR = UNKNOWN; +/** + * @var int + * @cname XML_PARSE_DTDVALID + */ +const LIBXML_DTDVALID = UNKNOWN; +/** + * @var int + * @cname XML_PARSE_NOERROR + */ +const LIBXML_NOERROR = UNKNOWN; +/** + * @var int + * @cname XML_PARSE_NOWARNING + */ +const LIBXML_NOWARNING = UNKNOWN; +/** + * @var int + * @cname XML_PARSE_NOBLANKS + */ +const LIBXML_NOBLANKS = UNKNOWN; +/** + * @var int + * @cname XML_PARSE_XINCLUDE + */ +const LIBXML_XINCLUDE = UNKNOWN; +/** + * @var int + * @cname XML_PARSE_NSCLEAN + */ +const LIBXML_NSCLEAN = UNKNOWN; +/** + * @var int + * @cname XML_PARSE_NOCDATA + */ +const LIBXML_NOCDATA = UNKNOWN; +/** + * @var int + * @cname XML_PARSE_NONET + */ +const LIBXML_NONET = UNKNOWN; +/** + * @var int + * @cname XML_PARSE_PEDANTIC + */ +const LIBXML_PEDANTIC = UNKNOWN; +/** + * @var int + * @cname XML_PARSE_COMPACT + */ +const LIBXML_COMPACT = UNKNOWN; +/** + * @var int + * @cname XML_SAVE_NO_DECL + */ +const LIBXML_NOXMLDECL = UNKNOWN; +/** + * @var int + * @cname XML_PARSE_HUGE + */ +const LIBXML_PARSEHUGE = UNKNOWN; +#if LIBXML_VERSION >= 20900 +/** + * @var int + * @cname XML_PARSE_BIG_LINES + */ +const LIBXML_BIGLINES = UNKNOWN; +#endif +/** + * @var int + * @cname LIBXML_SAVE_NOEMPTYTAG + */ +const LIBXML_NOEMPTYTAG = UNKNOWN; + +#ifdef LIBXML_SCHEMAS_ENABLED +/** + * @var int + * @cname XML_SCHEMA_VAL_VC_I_CREATE + */ +const LIBXML_SCHEMA_CREATE = UNKNOWN; +#endif + +#if LIBXML_VERSION >= 20707 +/** + * @var int + * @cname HTML_PARSE_NOIMPLIED + */ +const LIBXML_HTML_NOIMPLIED = UNKNOWN; +#endif + +#if LIBXML_VERSION >= 20708 +/** + * @var int + * @cname HTML_PARSE_NODEFDTD + */ +const LIBXML_HTML_NODEFDTD = UNKNOWN; +#endif + +/** + * @var int + * @cname XML_ERR_NONE + */ +const LIBXML_ERR_NONE = UNKNOWN; +/** + * @var int + * @cname XML_ERR_WARNING + */ +const LIBXML_ERR_WARNING = UNKNOWN; +/** + * @var int + * @cname XML_ERR_ERROR + */ +const LIBXML_ERR_ERROR = UNKNOWN; +/** + * @var int + * @cname XML_ERR_FATAL + */ +const LIBXML_ERR_FATAL = UNKNOWN; + class LibXMLError { public int $level; diff --git a/ext/libxml/libxml_arginfo.h b/ext/libxml/libxml_arginfo.h index fb0e5edf75c4f..ad3b90eae23d0 100644 --- a/ext/libxml/libxml_arginfo.h +++ b/ext/libxml/libxml_arginfo.h @@ -1,5 +1,5 @@ /* This is a generated file, edit the .stub.php file instead. - * Stub hash: 4bde2f5c4e55b6e0c273b0d8605cb765cc9f8400 */ + * Stub hash: 92c1a93932fbd2c2738e30c705716b846eadc40c */ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_libxml_set_streams_context, 0, 1, IS_VOID, 0) ZEND_ARG_INFO(0, context) @@ -52,6 +52,45 @@ static const zend_function_entry class_LibXMLError_methods[] = { ZEND_FE_END }; +static void register_libxml_symbols(int module_number) +{ + REGISTER_LONG_CONSTANT("LIBXML_VERSION", LIBXML_VERSION, CONST_CS | CONST_PERSISTENT); + REGISTER_STRING_CONSTANT("LIBXML_DOTTED_VERSION", LIBXML_DOTTED_VERSION, CONST_CS | CONST_PERSISTENT); + REGISTER_STRING_CONSTANT("LIBXML_LOADED_VERSION", PHP_LIBXML_LOADED_VERSION, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("LIBXML_NOENT", XML_PARSE_NOENT, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("LIBXML_DTDLOAD", XML_PARSE_DTDLOAD, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("LIBXML_DTDATTR", XML_PARSE_DTDATTR, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("LIBXML_DTDVALID", XML_PARSE_DTDVALID, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("LIBXML_NOERROR", XML_PARSE_NOERROR, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("LIBXML_NOWARNING", XML_PARSE_NOWARNING, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("LIBXML_NOBLANKS", XML_PARSE_NOBLANKS, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("LIBXML_XINCLUDE", XML_PARSE_XINCLUDE, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("LIBXML_NSCLEAN", XML_PARSE_NSCLEAN, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("LIBXML_NOCDATA", XML_PARSE_NOCDATA, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("LIBXML_NONET", XML_PARSE_NONET, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("LIBXML_PEDANTIC", XML_PARSE_PEDANTIC, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("LIBXML_COMPACT", XML_PARSE_COMPACT, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("LIBXML_NOXMLDECL", XML_SAVE_NO_DECL, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("LIBXML_PARSEHUGE", XML_PARSE_HUGE, CONST_CS | CONST_PERSISTENT); +#if LIBXML_VERSION >= 20900 + REGISTER_LONG_CONSTANT("LIBXML_BIGLINES", XML_PARSE_BIG_LINES, CONST_CS | CONST_PERSISTENT); +#endif + REGISTER_LONG_CONSTANT("LIBXML_NOEMPTYTAG", LIBXML_SAVE_NOEMPTYTAG, CONST_CS | CONST_PERSISTENT); +#if defined(LIBXML_SCHEMAS_ENABLED) + REGISTER_LONG_CONSTANT("LIBXML_SCHEMA_CREATE", XML_SCHEMA_VAL_VC_I_CREATE, CONST_CS | CONST_PERSISTENT); +#endif +#if LIBXML_VERSION >= 20707 + REGISTER_LONG_CONSTANT("LIBXML_HTML_NOIMPLIED", HTML_PARSE_NOIMPLIED, CONST_CS | CONST_PERSISTENT); +#endif +#if LIBXML_VERSION >= 20708 + REGISTER_LONG_CONSTANT("LIBXML_HTML_NODEFDTD", HTML_PARSE_NODEFDTD, CONST_CS | CONST_PERSISTENT); +#endif + REGISTER_LONG_CONSTANT("LIBXML_ERR_NONE", XML_ERR_NONE, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("LIBXML_ERR_WARNING", XML_ERR_WARNING, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("LIBXML_ERR_ERROR", XML_ERR_ERROR, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("LIBXML_ERR_FATAL", XML_ERR_FATAL, CONST_CS | CONST_PERSISTENT); +} + static zend_class_entry *register_class_LibXMLError(void) { zend_class_entry ce, *class_entry;