summaryrefslogtreecommitdiff
path: root/ext/xmlreader/php_xmlreader.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/xmlreader/php_xmlreader.c')
-rw-r--r--ext/xmlreader/php_xmlreader.c55
1 files changed, 22 insertions, 33 deletions
diff --git a/ext/xmlreader/php_xmlreader.c b/ext/xmlreader/php_xmlreader.c
index 4d4e7348c9..93888e49a1 100644
--- a/ext/xmlreader/php_xmlreader.c
+++ b/ext/xmlreader/php_xmlreader.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| PHP Version 7 |
+----------------------------------------------------------------------+
- | Copyright (c) 1997-2018 The PHP Group |
+ | Copyright (c) The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -181,7 +181,7 @@ zval *xmlreader_read_property(zval *object, zval *member, int type, void **cache
/* }}} */
/* {{{ xmlreader_write_property */
-void xmlreader_write_property(zval *object, zval *member, zval *value, void **cache_slot)
+zval *xmlreader_write_property(zval *object, zval *member, zval *value, void **cache_slot)
{
xmlreader_object *obj;
zval tmp_member;
@@ -200,12 +200,14 @@ void xmlreader_write_property(zval *object, zval *member, zval *value, void **ca
if (hnd != NULL) {
php_error_docref(NULL, E_WARNING, "Cannot write to read-only property");
} else {
- zend_std_write_property(object, member, value, cache_slot);
+ value = zend_std_write_property(object, member, value, cache_slot);
}
if (member == &tmp_member) {
zval_ptr_dtor_str(&tmp_member);
}
+
+ return value;
}
/* }}} */
@@ -402,7 +404,7 @@ static void php_xmlreader_string_arg(INTERNAL_FUNCTION_PARAMETERS, xmlreader_rea
RETURN_FALSE;
}
- id = getThis();
+ id = ZEND_THIS;
intern = Z_XMLREADER_P(id);
if (intern && intern->ptr) {
@@ -424,7 +426,7 @@ static void php_xmlreader_no_arg(INTERNAL_FUNCTION_PARAMETERS, xmlreader_read_in
int retval;
xmlreader_object *intern;
- id = getThis();
+ id = ZEND_THIS;
intern = Z_XMLREADER_P(id);
if (intern && intern->ptr) {
@@ -442,14 +444,13 @@ static void php_xmlreader_free_prop_handler(zval *el) /* {{{ */ {
pefree(Z_PTR_P(el), 1);
} /* }}} */
-#if LIBXML_VERSION >= 20620
/* {{{ php_xmlreader_no_arg_string */
static void php_xmlreader_no_arg_string(INTERNAL_FUNCTION_PARAMETERS, xmlreader_read_char_t internal_function) {
zval *id;
char *retchar = NULL;
xmlreader_object *intern;
- id = getThis();
+ id = ZEND_THIS;
intern = Z_XMLREADER_P(id);
if (intern && intern->ptr) {
@@ -464,7 +465,6 @@ static void php_xmlreader_no_arg_string(INTERNAL_FUNCTION_PARAMETERS, xmlreader_
}
}
/* }}} */
-#endif
/* {{{ php_xmlreader_set_relaxng_schema */
static void php_xmlreader_set_relaxng_schema(INTERNAL_FUNCTION_PARAMETERS, int type) {
@@ -485,7 +485,7 @@ static void php_xmlreader_set_relaxng_schema(INTERNAL_FUNCTION_PARAMETERS, int t
RETURN_FALSE;
}
- id = getThis();
+ id = ZEND_THIS;
intern = Z_XMLREADER_P(id);
if (intern && intern->ptr) {
@@ -528,7 +528,7 @@ PHP_METHOD(xmlreader, close)
zval *id;
xmlreader_object *intern;
- id = getThis();
+ id = ZEND_THIS;
intern = Z_XMLREADER_P(id);
/* libxml is segfaulting in versions up to 2.6.8 using xmlTextReaderClose so for
now we will free the whole reader when close is called as it would get rebuilt on
@@ -560,7 +560,7 @@ PHP_METHOD(xmlreader, getAttributeNo)
return;
}
- id = getThis();
+ id = ZEND_THIS;
intern = Z_XMLREADER_P(id);
if (intern && intern->ptr) {
@@ -591,7 +591,7 @@ PHP_METHOD(xmlreader, getAttributeNs)
RETURN_FALSE;
}
- id = getThis();
+ id = ZEND_THIS;
intern = Z_XMLREADER_P(id);
if (intern && intern->ptr) {
@@ -617,7 +617,7 @@ PHP_METHOD(xmlreader, getParserProperty)
return;
}
- id = getThis();
+ id = ZEND_THIS;
intern = Z_XMLREADER_P(id);
if (intern && intern->ptr) {
@@ -669,7 +669,7 @@ PHP_METHOD(xmlreader, moveToAttribute)
RETURN_FALSE;
}
- id = getThis();
+ id = ZEND_THIS;
intern = Z_XMLREADER_P(id);
if (intern && intern->ptr) {
@@ -697,7 +697,7 @@ PHP_METHOD(xmlreader, moveToAttributeNo)
return;
}
- id = getThis();
+ id = ZEND_THIS;
intern = Z_XMLREADER_P(id);
if (intern && intern->ptr) {
@@ -731,7 +731,7 @@ PHP_METHOD(xmlreader, moveToAttributeNs)
RETURN_FALSE;
}
- id = getThis();
+ id = ZEND_THIS;
intern = Z_XMLREADER_P(id);
if (intern && intern->ptr) {
@@ -777,7 +777,7 @@ PHP_METHOD(xmlreader, read)
int retval;
xmlreader_object *intern;
- id = getThis();
+ id = ZEND_THIS;
intern = Z_XMLREADER_P(id);
if (intern != NULL && intern->ptr != NULL) {
retval = xmlTextReaderRead(intern->ptr);
@@ -807,15 +807,9 @@ PHP_METHOD(xmlreader, next)
return;
}
- id = getThis();
+ id = ZEND_THIS;
intern = Z_XMLREADER_P(id);
if (intern != NULL && intern->ptr != NULL) {
-#if LIBXML_VERSION <= 20617
- /* Bug in libxml prevents a next in certain cases when positioned on end of element */
- if (xmlTextReaderNodeType(intern->ptr) == XML_READER_TYPE_END_ELEMENT) {
- retval = xmlTextReaderRead(intern->ptr);
- } else
-#endif
retval = xmlTextReaderNext(intern->ptr);
while (name != NULL && retval == 1) {
if (xmlStrEqual(xmlTextReaderConstLocalName(intern->ptr), (xmlChar *)name)) {
@@ -899,7 +893,6 @@ PHP_METHOD(xmlreader, resetState)
}
*/
-#if LIBXML_VERSION >= 20620
/* {{{ proto string XMLReader::readInnerXml()
Reads the contents of the current node, including child nodes and markup. */
PHP_METHOD(xmlreader, readInnerXml)
@@ -944,7 +937,7 @@ PHP_METHOD(xmlreader, setSchema)
RETURN_FALSE;
}
- id = getThis();
+ id = ZEND_THIS;
intern = Z_XMLREADER_P(id);
if (intern && intern->ptr) {
@@ -965,7 +958,6 @@ PHP_METHOD(xmlreader, setSchema)
#endif
}
/* }}} */
-#endif
/* {{{ proto bool XMLReader::setParserProperty(int property, bool value)
Sets parser property (one of the parser option constants).
@@ -982,7 +974,7 @@ PHP_METHOD(xmlreader, setParserProperty)
return;
}
- id = getThis();
+ id = ZEND_THIS;
intern = Z_XMLREADER_P(id);
if (intern && intern->ptr) {
@@ -1071,9 +1063,7 @@ PHP_METHOD(xmlreader, XML)
reader = xmlNewTextReader(inputbfr, uri);
if (reader != NULL) {
-#if LIBXML_VERSION >= 20628
ret = xmlTextReaderSetup(reader, NULL, uri, encoding, options);
-#endif
if (ret == 0) {
if (id == NULL) {
object_init_ex(return_value, xmlreader_class_entry);
@@ -1117,7 +1107,8 @@ PHP_METHOD(xmlreader, expand)
xmlDocPtr docp = NULL;
php_libxml_node_object *domobj = NULL;
- if (zend_parse_method_parameters(ZEND_NUM_ARGS(), getThis(), "O|O!", &id, xmlreader_class_entry, &basenode, dom_node_class_entry) == FAILURE) {
+ id = ZEND_THIS;
+ if (zend_parse_parameters(ZEND_NUM_ARGS(), "|O!", &basenode, dom_node_class_entry) == FAILURE) {
return;
}
@@ -1271,12 +1262,10 @@ static const zend_function_entry xmlreader_functions[] /* {{{ */ = {
PHP_ME(xmlreader, open, arginfo_xmlreader_open, ZEND_ACC_PUBLIC|ZEND_ACC_ALLOW_STATIC)
PHP_ME(xmlreader, read, arginfo_xmlreader_read, ZEND_ACC_PUBLIC)
PHP_ME(xmlreader, next, arginfo_xmlreader_next, ZEND_ACC_PUBLIC)
-#if LIBXML_VERSION >= 20620
PHP_ME(xmlreader, readInnerXml, arginfo_xmlreader_readInnerXml, ZEND_ACC_PUBLIC)
PHP_ME(xmlreader, readOuterXml, arginfo_xmlreader_readOuterXml, ZEND_ACC_PUBLIC)
PHP_ME(xmlreader, readString, arginfo_xmlreader_readString, ZEND_ACC_PUBLIC)
PHP_ME(xmlreader, setSchema, arginfo_xmlreader_setSchema, ZEND_ACC_PUBLIC)
-#endif
/* Not Yet Implemented though defined in libxml as of 2.6.9dev
PHP_ME(xmlreader, resetState, NULL, ZEND_ACC_PUBLIC)
*/