@@ -157,7 +157,7 @@ static void xml_call_handler(xml_parser *, zval *, zend_function *, int, zval *,
157157static void _xml_xmlchar_zval (const XML_Char * , int , const XML_Char * , zval * );
158158static int _xml_xmlcharlen (const XML_Char * );
159159static void _xml_add_to_info (xml_parser * parser , const char * name );
160- inline static zend_string * _xml_decode_tag (xml_parser * parser , const char * tag );
160+ inline static zend_string * _xml_decode_tag (xml_parser * parser , const XML_Char * tag );
161161
162162void _xml_startElementHandler (void * , const XML_Char * , const XML_Char * * );
163163void _xml_endElementHandler (void * , const XML_Char * );
@@ -570,11 +570,11 @@ static void _xml_add_to_info(xml_parser *parser, const char *name)
570570/* }}} */
571571
572572/* {{{ _xml_decode_tag() */
573- static zend_string * _xml_decode_tag (xml_parser * parser , const char * tag )
573+ static zend_string * _xml_decode_tag (xml_parser * parser , const XML_Char * tag )
574574{
575575 zend_string * str ;
576576
577- str = xml_utf8_decode (( const XML_Char * ) tag , strlen (tag ), parser -> target_encoding );
577+ str = xml_utf8_decode (tag , _xml_xmlcharlen (tag ), parser -> target_encoding );
578578
579579 if (parser -> case_folding ) {
580580 zend_str_toupper (ZSTR_VAL (str ), ZSTR_LEN (str ));
@@ -595,7 +595,7 @@ void _xml_startElementHandler(void *userData, const XML_Char *name, const XML_Ch
595595 if (parser ) {
596596 parser -> level ++ ;
597597
598- tag_name = _xml_decode_tag (parser , ( const char * ) name );
598+ tag_name = _xml_decode_tag (parser , name );
599599
600600 if (!Z_ISUNDEF (parser -> startElementHandler )) {
601601 ZVAL_COPY (& args [0 ], & parser -> index );
@@ -605,7 +605,7 @@ void _xml_startElementHandler(void *userData, const XML_Char *name, const XML_Ch
605605 while (attributes && * attributes ) {
606606 zval tmp ;
607607
608- att = _xml_decode_tag (parser , ( const char * ) attributes [0 ]);
608+ att = _xml_decode_tag (parser , attributes [0 ]);
609609 val = xml_utf8_decode (attributes [1 ], strlen ((char * )attributes [1 ]), parser -> target_encoding );
610610
611611 ZVAL_STR (& tmp , val );
@@ -642,7 +642,7 @@ void _xml_startElementHandler(void *userData, const XML_Char *name, const XML_Ch
642642 while (attributes && * attributes ) {
643643 zval tmp ;
644644
645- att = _xml_decode_tag (parser , ( const char * ) attributes [0 ]);
645+ att = _xml_decode_tag (parser , attributes [0 ]);
646646 val = xml_utf8_decode (attributes [1 ], strlen ((char * )attributes [1 ]), parser -> target_encoding );
647647
648648 ZVAL_STR (& tmp , val );
@@ -679,7 +679,7 @@ void _xml_endElementHandler(void *userData, const XML_Char *name)
679679 if (parser ) {
680680 zval retval , args [2 ];
681681
682- zend_string * tag_name = _xml_decode_tag (parser , ( const char * ) name );
682+ zend_string * tag_name = _xml_decode_tag (parser , name );
683683
684684 if (!Z_ISUNDEF (parser -> endElementHandler )) {
685685 ZVAL_COPY (& args [0 ], & parser -> index );
0 commit comments