@@ -663,9 +663,11 @@ void xml_startElementHandler(void *userData, const XML_Char *name, const XML_Cha
663663 array_init (& tag );
664664 array_init (& atr );
665665
666- xml_add_to_info ( parser , ZSTR_VAL (tag_name ) + parser -> toffset );
666+ char * skipped_tag_name = SKIP_TAGSTART ( ZSTR_VAL (tag_name ));
667667
668- add_assoc_string (& tag , "tag" , SKIP_TAGSTART (ZSTR_VAL (tag_name ))); /* cast to avoid gcc-warning */
668+ xml_add_to_info (parser , skipped_tag_name );
669+
670+ add_assoc_string (& tag , "tag" , skipped_tag_name );
669671 add_assoc_string (& tag , "type" , "open" );
670672 add_assoc_long (& tag , "level" , parser -> level );
671673
@@ -747,12 +749,14 @@ void xml_endElementHandler(void *userData, const XML_Char *name)
747749 add_assoc_string (zv , "type" , "complete" );
748750 }
749751 } else {
750- xml_add_to_info (parser , ZSTR_VAL (tag_name ) + parser -> toffset );
752+ char * skipped_tag_name = SKIP_TAGSTART (ZSTR_VAL (tag_name ));
753+
754+ xml_add_to_info (parser , skipped_tag_name );
751755
752756 zval * data = xml_get_separated_data (parser );
753757 if (EXPECTED (data )) {
754758 array_init (& tag );
755- add_assoc_string (& tag , "tag" , SKIP_TAGSTART ( ZSTR_VAL ( tag_name ))); /* cast to avoid gcc-warning */
759+ add_assoc_string (& tag , "tag" , skipped_tag_name );
756760 add_assoc_string (& tag , "type" , "close" );
757761 add_assoc_long (& tag , "level" , parser -> level );
758762 zend_hash_next_index_insert (Z_ARRVAL_P (data ), & tag );
0 commit comments