22
22
#include "php.h"
23
23
#include "php_ini.h"
24
24
#include "ext/standard/info.h"
25
+ #include "zend_observer.h"
25
26
#include "php_xmlreader.h"
26
27
#ifdef HAVE_DOM
27
28
#include "ext/dom/xml_common.h"
@@ -1148,6 +1149,18 @@ PHP_METHOD(XMLReader, expand)
1148
1149
}
1149
1150
/* }}} */
1150
1151
1152
+ static zend_result (* prev_zend_post_startup_cb )(void );
1153
+ static zend_result xmlreader_fixup_temporaries (void ) {
1154
+ if (ZEND_OBSERVER_ENABLED ) {
1155
+ ++ xmlreader_open_fn .T ;
1156
+ ++ xmlreader_xml_fn .T ;
1157
+ }
1158
+ if (prev_zend_post_startup_cb ) {
1159
+ return prev_zend_post_startup_cb ();
1160
+ }
1161
+ return SUCCESS ;
1162
+ }
1163
+
1151
1164
/* {{{ PHP_MINIT_FUNCTION */
1152
1165
PHP_MINIT_FUNCTION (xmlreader )
1153
1166
{
@@ -1169,6 +1182,9 @@ PHP_MINIT_FUNCTION(xmlreader)
1169
1182
memcpy (& xmlreader_xml_fn , zend_hash_str_find_ptr (& xmlreader_class_entry -> function_table , "xml" , sizeof ("xml" )- 1 ), sizeof (zend_internal_function ));
1170
1183
xmlreader_xml_fn .fn_flags &= ~ZEND_ACC_STATIC ;
1171
1184
1185
+ prev_zend_post_startup_cb = zend_post_startup_cb ;
1186
+ zend_post_startup_cb = xmlreader_fixup_temporaries ;
1187
+
1172
1188
zend_hash_init (& xmlreader_prop_handlers , 0 , NULL , php_xmlreader_free_prop_handler , 1 );
1173
1189
xmlreader_register_prop_handler (& xmlreader_prop_handlers , "attributeCount" , xmlTextReaderAttributeCount , NULL , IS_LONG );
1174
1190
xmlreader_register_prop_handler (& xmlreader_prop_handlers , "baseURI" , NULL , xmlTextReaderConstBaseUri , IS_STRING );
0 commit comments