diff --git a/ext/xmlreader/php_xmlreader.c b/ext/xmlreader/php_xmlreader.c index c17884d960c..729a1d2c7c3 100644 --- a/ext/xmlreader/php_xmlreader.c +++ b/ext/xmlreader/php_xmlreader.c @@ -23,13 +23,13 @@ #include "php_ini.h" #include "ext/standard/info.h" #include "php_xmlreader.h" -#include "php_xmlreader_arginfo.h" #ifdef HAVE_DOM #include "ext/dom/xml_common.h" #include "ext/dom/dom_ce.h" #endif #include #include +#include "php_xmlreader_arginfo.h" zend_class_entry *xmlreader_class_entry; @@ -1185,40 +1185,6 @@ PHP_MINIT_FUNCTION(xmlreader) xmlreader_register_prop_handler(&xmlreader_prop_handlers, "value", NULL, xmlTextReaderConstValue, IS_STRING); xmlreader_register_prop_handler(&xmlreader_prop_handlers, "xmlLang", NULL, xmlTextReaderConstXmlLang, IS_STRING); - /* Constants for NodeType - cannot define common types to share with dom as there are differences in these types */ - - REGISTER_XMLREADER_CLASS_CONST_LONG("NONE", XML_READER_TYPE_NONE); - REGISTER_XMLREADER_CLASS_CONST_LONG("ELEMENT", XML_READER_TYPE_ELEMENT); - REGISTER_XMLREADER_CLASS_CONST_LONG("ATTRIBUTE", XML_READER_TYPE_ATTRIBUTE); - REGISTER_XMLREADER_CLASS_CONST_LONG("TEXT", XML_READER_TYPE_TEXT); - REGISTER_XMLREADER_CLASS_CONST_LONG("CDATA", XML_READER_TYPE_CDATA); - REGISTER_XMLREADER_CLASS_CONST_LONG("ENTITY_REF", XML_READER_TYPE_ENTITY_REFERENCE); - REGISTER_XMLREADER_CLASS_CONST_LONG("ENTITY", XML_READER_TYPE_ENTITY); - REGISTER_XMLREADER_CLASS_CONST_LONG("PI", XML_READER_TYPE_PROCESSING_INSTRUCTION); - REGISTER_XMLREADER_CLASS_CONST_LONG("COMMENT", XML_READER_TYPE_COMMENT); - REGISTER_XMLREADER_CLASS_CONST_LONG("DOC", XML_READER_TYPE_DOCUMENT); - REGISTER_XMLREADER_CLASS_CONST_LONG("DOC_TYPE", XML_READER_TYPE_DOCUMENT_TYPE); - REGISTER_XMLREADER_CLASS_CONST_LONG("DOC_FRAGMENT", XML_READER_TYPE_DOCUMENT_FRAGMENT); - REGISTER_XMLREADER_CLASS_CONST_LONG("NOTATION", XML_READER_TYPE_NOTATION); - REGISTER_XMLREADER_CLASS_CONST_LONG("WHITESPACE", XML_READER_TYPE_WHITESPACE); - REGISTER_XMLREADER_CLASS_CONST_LONG("SIGNIFICANT_WHITESPACE", XML_READER_TYPE_SIGNIFICANT_WHITESPACE); - REGISTER_XMLREADER_CLASS_CONST_LONG("END_ELEMENT", XML_READER_TYPE_END_ELEMENT); - REGISTER_XMLREADER_CLASS_CONST_LONG("END_ENTITY", XML_READER_TYPE_END_ENTITY); - REGISTER_XMLREADER_CLASS_CONST_LONG("XML_DECLARATION", XML_READER_TYPE_XML_DECLARATION); - - /* Constants for Parser options */ - REGISTER_XMLREADER_CLASS_CONST_LONG("LOADDTD", XML_PARSER_LOADDTD); - REGISTER_XMLREADER_CLASS_CONST_LONG("DEFAULTATTRS", XML_PARSER_DEFAULTATTRS); - REGISTER_XMLREADER_CLASS_CONST_LONG("VALIDATE", XML_PARSER_VALIDATE); - REGISTER_XMLREADER_CLASS_CONST_LONG("SUBST_ENTITIES", XML_PARSER_SUBST_ENTITIES); - - /* Constants for Errors when loading - not yet used until we implement custom error handling - REGISTER_XMLREADER_CLASS_CONST_LONG("VALIDITY_WARNING", XML_PARSER_SEVERITY_VALIDITY_WARNING, CONST_CS | CONST_PERSISTENT); - REGISTER_XMLREADER_CLASS_CONST_LONG("VALIDITY_ERROR", XML_PARSER_SEVERITY_VALIDITY_ERROR, CONST_CS | CONST_PERSISTENT); - REGISTER_XMLREADER_CLASS_CONST_LONG("WARNING", XML_PARSER_SEVERITY_WARNING, CONST_CS | CONST_PERSISTENT); - REGISTER_XMLREADER_CLASS_CONST_LONG("ERROR", XML_PARSER_SEVERITY_ERROR, CONST_CS | CONST_PERSISTENT); - */ - return SUCCESS; } /* }}} */ diff --git a/ext/xmlreader/php_xmlreader.h b/ext/xmlreader/php_xmlreader.h index 2f3a63156ee..0289fb1d1aa 100644 --- a/ext/xmlreader/php_xmlreader.h +++ b/ext/xmlreader/php_xmlreader.h @@ -57,7 +57,4 @@ PHP_MINIT_FUNCTION(xmlreader); PHP_MSHUTDOWN_FUNCTION(xmlreader); PHP_MINFO_FUNCTION(xmlreader); -#define REGISTER_XMLREADER_CLASS_CONST_LONG(const_name, value) \ - zend_declare_class_constant_long(xmlreader_class_entry, const_name, sizeof(const_name)-1, (zend_long)value); - #endif /* PHP_XMLREADER_H */ diff --git a/ext/xmlreader/php_xmlreader.stub.php b/ext/xmlreader/php_xmlreader.stub.php index 742af06ec91..ed4cc393e27 100644 --- a/ext/xmlreader/php_xmlreader.stub.php +++ b/ext/xmlreader/php_xmlreader.stub.php @@ -4,6 +4,123 @@ class XMLReader { + /* Constants for NodeType - cannot define common types to share with dom as there are differences in these types */ + + /** + * @var int + * @cvalue XML_READER_TYPE_NONE + */ + public const NONE = UNKNOWN; + /** + * @var int + * @cvalue XML_READER_TYPE_ELEMENT + */ + public const ELEMENT = UNKNOWN; + /** + * @var int + * @cvalue XML_READER_TYPE_ATTRIBUTE + */ + public const ATTRIBUTE = UNKNOWN; + /** + * @var int + * @cvalue XML_READER_TYPE_TEXT + */ + public const TEXT = UNKNOWN; + /** + * @var int + * @cvalue XML_READER_TYPE_CDATA + */ + public const CDATA = UNKNOWN; + /** + * @var int + * @cvalue XML_READER_TYPE_ENTITY_REFERENCE + */ + public const ENTITY_REF = UNKNOWN; + /** + * @var int + * @cvalue XML_READER_TYPE_ENTITY + */ + public const ENTITY = UNKNOWN; + /** + * @var int + * @cvalue XML_READER_TYPE_PROCESSING_INSTRUCTION + */ + public const PI = UNKNOWN; + /** + * @var int + * @cvalue XML_READER_TYPE_COMMENT + */ + public const COMMENT = UNKNOWN; + /** + * @var int + * @cvalue XML_READER_TYPE_DOCUMENT + */ + public const DOC = UNKNOWN; + /** + * @var int + * @cvalue XML_READER_TYPE_DOCUMENT_TYPE + */ + public const DOC_TYPE = UNKNOWN; + /** + * @var int + * @cvalue XML_READER_TYPE_DOCUMENT_FRAGMENT + */ + public const DOC_FRAGMENT = UNKNOWN; + /** + * @var int + * @cvalue XML_READER_TYPE_NOTATION + */ + public const NOTATION = UNKNOWN; + /** + * @var int + * @cvalue XML_READER_TYPE_WHITESPACE + */ + public const WHITESPACE = UNKNOWN; + /** + * @var int + * @cvalue XML_READER_TYPE_SIGNIFICANT_WHITESPACE + */ + public const SIGNIFICANT_WHITESPACE = UNKNOWN; + /** + * @var int + * @cvalue XML_READER_TYPE_END_ELEMENT + */ + public const END_ELEMENT = UNKNOWN; + /** + * @var int + * @cvalue XML_READER_TYPE_END_ENTITY + */ + public const END_ENTITY = UNKNOWN; + /** + * @var int + * @cvalue XML_READER_TYPE_XML_DECLARATION + */ + public const XML_DECLARATION = UNKNOWN; + + /* Constants for Parser options */ + + /** + * @var int + * @cvalue XML_PARSER_LOADDTD + */ + public const LOADDTD = UNKNOWN; + /** + * @var int + * @cvalue XML_PARSER_DEFAULTATTRS + */ + public const DEFAULTATTRS = UNKNOWN; + /** + * @var int + * @cvalue XML_PARSER_VALIDATE + */ + public const VALIDATE = UNKNOWN; + /** + * @var int + * @cvalue XML_PARSER_SUBST_ENTITIES + */ + public const SUBST_ENTITIES = UNKNOWN; + + public int $attributeCount; public string $baseURI; diff --git a/ext/xmlreader/php_xmlreader_arginfo.h b/ext/xmlreader/php_xmlreader_arginfo.h index 79ca6e7dec2..c80006570cc 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: 1601e86ad66e337a6af7d09ec7ba703926bdb8c7 */ + * Stub hash: 0102030bdd0ca8806bbd881ed3f6788d4b18c462 */ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_XMLReader_close, 0, 0, 0) ZEND_END_ARG_INFO() @@ -155,6 +155,138 @@ static zend_class_entry *register_class_XMLReader(void) INIT_CLASS_ENTRY(ce, "XMLReader", class_XMLReader_methods); class_entry = zend_register_internal_class_ex(&ce, NULL); + zval const_NONE_value; + ZVAL_LONG(&const_NONE_value, XML_READER_TYPE_NONE); + zend_string *const_NONE_name = zend_string_init_interned("NONE", sizeof("NONE") - 1, 1); + zend_declare_class_constant_ex(class_entry, const_NONE_name, &const_NONE_value, ZEND_ACC_PUBLIC, NULL); + zend_string_release(const_NONE_name); + + zval const_ELEMENT_value; + ZVAL_LONG(&const_ELEMENT_value, XML_READER_TYPE_ELEMENT); + zend_string *const_ELEMENT_name = zend_string_init_interned("ELEMENT", sizeof("ELEMENT") - 1, 1); + zend_declare_class_constant_ex(class_entry, const_ELEMENT_name, &const_ELEMENT_value, ZEND_ACC_PUBLIC, NULL); + zend_string_release(const_ELEMENT_name); + + zval const_ATTRIBUTE_value; + ZVAL_LONG(&const_ATTRIBUTE_value, XML_READER_TYPE_ATTRIBUTE); + zend_string *const_ATTRIBUTE_name = zend_string_init_interned("ATTRIBUTE", sizeof("ATTRIBUTE") - 1, 1); + zend_declare_class_constant_ex(class_entry, const_ATTRIBUTE_name, &const_ATTRIBUTE_value, ZEND_ACC_PUBLIC, NULL); + zend_string_release(const_ATTRIBUTE_name); + + zval const_TEXT_value; + ZVAL_LONG(&const_TEXT_value, XML_READER_TYPE_TEXT); + zend_string *const_TEXT_name = zend_string_init_interned("TEXT", sizeof("TEXT") - 1, 1); + zend_declare_class_constant_ex(class_entry, const_TEXT_name, &const_TEXT_value, ZEND_ACC_PUBLIC, NULL); + zend_string_release(const_TEXT_name); + + zval const_CDATA_value; + ZVAL_LONG(&const_CDATA_value, XML_READER_TYPE_CDATA); + zend_string *const_CDATA_name = zend_string_init_interned("CDATA", sizeof("CDATA") - 1, 1); + zend_declare_class_constant_ex(class_entry, const_CDATA_name, &const_CDATA_value, ZEND_ACC_PUBLIC, NULL); + zend_string_release(const_CDATA_name); + + zval const_ENTITY_REF_value; + ZVAL_LONG(&const_ENTITY_REF_value, XML_READER_TYPE_ENTITY_REFERENCE); + zend_string *const_ENTITY_REF_name = zend_string_init_interned("ENTITY_REF", sizeof("ENTITY_REF") - 1, 1); + zend_declare_class_constant_ex(class_entry, const_ENTITY_REF_name, &const_ENTITY_REF_value, ZEND_ACC_PUBLIC, NULL); + zend_string_release(const_ENTITY_REF_name); + + zval const_ENTITY_value; + ZVAL_LONG(&const_ENTITY_value, XML_READER_TYPE_ENTITY); + zend_string *const_ENTITY_name = zend_string_init_interned("ENTITY", sizeof("ENTITY") - 1, 1); + zend_declare_class_constant_ex(class_entry, const_ENTITY_name, &const_ENTITY_value, ZEND_ACC_PUBLIC, NULL); + zend_string_release(const_ENTITY_name); + + zval const_PI_value; + ZVAL_LONG(&const_PI_value, XML_READER_TYPE_PROCESSING_INSTRUCTION); + zend_string *const_PI_name = zend_string_init_interned("PI", sizeof("PI") - 1, 1); + zend_declare_class_constant_ex(class_entry, const_PI_name, &const_PI_value, ZEND_ACC_PUBLIC, NULL); + zend_string_release(const_PI_name); + + zval const_COMMENT_value; + ZVAL_LONG(&const_COMMENT_value, XML_READER_TYPE_COMMENT); + zend_string *const_COMMENT_name = zend_string_init_interned("COMMENT", sizeof("COMMENT") - 1, 1); + zend_declare_class_constant_ex(class_entry, const_COMMENT_name, &const_COMMENT_value, ZEND_ACC_PUBLIC, NULL); + zend_string_release(const_COMMENT_name); + + zval const_DOC_value; + ZVAL_LONG(&const_DOC_value, XML_READER_TYPE_DOCUMENT); + zend_string *const_DOC_name = zend_string_init_interned("DOC", sizeof("DOC") - 1, 1); + zend_declare_class_constant_ex(class_entry, const_DOC_name, &const_DOC_value, ZEND_ACC_PUBLIC, NULL); + zend_string_release(const_DOC_name); + + zval const_DOC_TYPE_value; + ZVAL_LONG(&const_DOC_TYPE_value, XML_READER_TYPE_DOCUMENT_TYPE); + zend_string *const_DOC_TYPE_name = zend_string_init_interned("DOC_TYPE", sizeof("DOC_TYPE") - 1, 1); + zend_declare_class_constant_ex(class_entry, const_DOC_TYPE_name, &const_DOC_TYPE_value, ZEND_ACC_PUBLIC, NULL); + zend_string_release(const_DOC_TYPE_name); + + zval const_DOC_FRAGMENT_value; + ZVAL_LONG(&const_DOC_FRAGMENT_value, XML_READER_TYPE_DOCUMENT_FRAGMENT); + zend_string *const_DOC_FRAGMENT_name = zend_string_init_interned("DOC_FRAGMENT", sizeof("DOC_FRAGMENT") - 1, 1); + zend_declare_class_constant_ex(class_entry, const_DOC_FRAGMENT_name, &const_DOC_FRAGMENT_value, ZEND_ACC_PUBLIC, NULL); + zend_string_release(const_DOC_FRAGMENT_name); + + zval const_NOTATION_value; + ZVAL_LONG(&const_NOTATION_value, XML_READER_TYPE_NOTATION); + zend_string *const_NOTATION_name = zend_string_init_interned("NOTATION", sizeof("NOTATION") - 1, 1); + zend_declare_class_constant_ex(class_entry, const_NOTATION_name, &const_NOTATION_value, ZEND_ACC_PUBLIC, NULL); + zend_string_release(const_NOTATION_name); + + zval const_WHITESPACE_value; + ZVAL_LONG(&const_WHITESPACE_value, XML_READER_TYPE_WHITESPACE); + zend_string *const_WHITESPACE_name = zend_string_init_interned("WHITESPACE", sizeof("WHITESPACE") - 1, 1); + zend_declare_class_constant_ex(class_entry, const_WHITESPACE_name, &const_WHITESPACE_value, ZEND_ACC_PUBLIC, NULL); + zend_string_release(const_WHITESPACE_name); + + zval const_SIGNIFICANT_WHITESPACE_value; + ZVAL_LONG(&const_SIGNIFICANT_WHITESPACE_value, XML_READER_TYPE_SIGNIFICANT_WHITESPACE); + zend_string *const_SIGNIFICANT_WHITESPACE_name = zend_string_init_interned("SIGNIFICANT_WHITESPACE", sizeof("SIGNIFICANT_WHITESPACE") - 1, 1); + zend_declare_class_constant_ex(class_entry, const_SIGNIFICANT_WHITESPACE_name, &const_SIGNIFICANT_WHITESPACE_value, ZEND_ACC_PUBLIC, NULL); + zend_string_release(const_SIGNIFICANT_WHITESPACE_name); + + zval const_END_ELEMENT_value; + ZVAL_LONG(&const_END_ELEMENT_value, XML_READER_TYPE_END_ELEMENT); + zend_string *const_END_ELEMENT_name = zend_string_init_interned("END_ELEMENT", sizeof("END_ELEMENT") - 1, 1); + zend_declare_class_constant_ex(class_entry, const_END_ELEMENT_name, &const_END_ELEMENT_value, ZEND_ACC_PUBLIC, NULL); + zend_string_release(const_END_ELEMENT_name); + + zval const_END_ENTITY_value; + ZVAL_LONG(&const_END_ENTITY_value, XML_READER_TYPE_END_ENTITY); + zend_string *const_END_ENTITY_name = zend_string_init_interned("END_ENTITY", sizeof("END_ENTITY") - 1, 1); + zend_declare_class_constant_ex(class_entry, const_END_ENTITY_name, &const_END_ENTITY_value, ZEND_ACC_PUBLIC, NULL); + zend_string_release(const_END_ENTITY_name); + + zval const_XML_DECLARATION_value; + ZVAL_LONG(&const_XML_DECLARATION_value, XML_READER_TYPE_XML_DECLARATION); + zend_string *const_XML_DECLARATION_name = zend_string_init_interned("XML_DECLARATION", sizeof("XML_DECLARATION") - 1, 1); + zend_declare_class_constant_ex(class_entry, const_XML_DECLARATION_name, &const_XML_DECLARATION_value, ZEND_ACC_PUBLIC, NULL); + zend_string_release(const_XML_DECLARATION_name); + + zval const_LOADDTD_value; + ZVAL_LONG(&const_LOADDTD_value, XML_PARSER_LOADDTD); + zend_string *const_LOADDTD_name = zend_string_init_interned("LOADDTD", sizeof("LOADDTD") - 1, 1); + zend_declare_class_constant_ex(class_entry, const_LOADDTD_name, &const_LOADDTD_value, ZEND_ACC_PUBLIC, NULL); + zend_string_release(const_LOADDTD_name); + + zval const_DEFAULTATTRS_value; + ZVAL_LONG(&const_DEFAULTATTRS_value, XML_PARSER_DEFAULTATTRS); + zend_string *const_DEFAULTATTRS_name = zend_string_init_interned("DEFAULTATTRS", sizeof("DEFAULTATTRS") - 1, 1); + zend_declare_class_constant_ex(class_entry, const_DEFAULTATTRS_name, &const_DEFAULTATTRS_value, ZEND_ACC_PUBLIC, NULL); + zend_string_release(const_DEFAULTATTRS_name); + + zval const_VALIDATE_value; + ZVAL_LONG(&const_VALIDATE_value, XML_PARSER_VALIDATE); + zend_string *const_VALIDATE_name = zend_string_init_interned("VALIDATE", sizeof("VALIDATE") - 1, 1); + zend_declare_class_constant_ex(class_entry, const_VALIDATE_name, &const_VALIDATE_value, ZEND_ACC_PUBLIC, NULL); + zend_string_release(const_VALIDATE_name); + + zval const_SUBST_ENTITIES_value; + ZVAL_LONG(&const_SUBST_ENTITIES_value, XML_PARSER_SUBST_ENTITIES); + zend_string *const_SUBST_ENTITIES_name = zend_string_init_interned("SUBST_ENTITIES", sizeof("SUBST_ENTITIES") - 1, 1); + zend_declare_class_constant_ex(class_entry, const_SUBST_ENTITIES_name, &const_SUBST_ENTITIES_value, ZEND_ACC_PUBLIC, NULL); + zend_string_release(const_SUBST_ENTITIES_name); + zval property_attributeCount_default_value; ZVAL_UNDEF(&property_attributeCount_default_value); zend_string *property_attributeCount_name = zend_string_init("attributeCount", sizeof("attributeCount") - 1, 1);