Lines Matching refs:parser
191 static void copy_salt_to_sipkey(XML_Parser parser, struct sipkey *key);
376 typedef enum XML_Error PTRCALL Processor(XML_Parser parser, const char *start,
398 static enum XML_Error handleUnknownEncoding(XML_Parser parser,
400 static enum XML_Error processXmlDecl(XML_Parser parser, int isGeneralTextEntity,
402 static enum XML_Error initializeEncoding(XML_Parser parser);
403 static enum XML_Error doProlog(XML_Parser parser, const ENCODING *enc,
407 static enum XML_Error processInternalEntity(XML_Parser parser, ENTITY *entity,
409 static enum XML_Error doContent(XML_Parser parser, int startTagLevel,
413 static enum XML_Error doCdataSection(XML_Parser parser, const ENCODING *,
417 static enum XML_Error doIgnoreSection(XML_Parser parser, const ENCODING *,
422 static void freeBindings(XML_Parser parser, BINDING *bindings);
423 static enum XML_Error storeAtts(XML_Parser parser, const ENCODING *,
426 static enum XML_Error addBinding(XML_Parser parser, PREFIX *prefix,
431 XML_Parser parser);
432 static enum XML_Error storeAttributeValue(XML_Parser parser, const ENCODING *,
435 static enum XML_Error appendAttributeValue(XML_Parser parser, const ENCODING *,
438 static ATTRIBUTE_ID *getAttributeId(XML_Parser parser, const ENCODING *enc,
440 static int setElementTypePrefix(XML_Parser parser, ELEMENT_TYPE *);
441 static enum XML_Error storeEntityValue(XML_Parser parser, const ENCODING *enc,
443 static int reportProcessingInstruction(XML_Parser parser, const ENCODING *enc,
445 static int reportComment(XML_Parser parser, const ENCODING *enc,
447 static void reportDefault(XML_Parser parser, const ENCODING *enc,
450 static const XML_Char *getContext(XML_Parser parser);
451 static XML_Bool setContext(XML_Parser parser, const XML_Char *context);
464 static NAMED *lookup(XML_Parser parser, HASH_TABLE *table, KEY name,
489 static int FASTCALL nextScaffoldPart(XML_Parser parser);
490 static XML_Content *build_model(XML_Parser parser);
491 static ELEMENT_TYPE *getElementType(XML_Parser parser, const ENCODING *enc,
497 static unsigned long generate_hash_secret_salt(XML_Parser parser);
498 static XML_Bool startParsing(XML_Parser parser);
504 static void parserInit(XML_Parser parser, const XML_Char *encodingName);
621 #define MALLOC(parser, s) (parser->m_mem.malloc_fcn((s))) argument
622 #define REALLOC(parser, p, s) (parser->m_mem.realloc_fcn((p), (s))) argument
623 #define FREE(parser, p) (parser->m_mem.free_fcn((p))) argument
803 generate_hash_secret_salt(XML_Parser parser) { in generate_hash_secret_salt() argument
805 (void)parser; in generate_hash_secret_salt()
846 get_hash_secret_salt(XML_Parser parser) { in get_hash_secret_salt() argument
847 if (parser->m_parentParser != NULL) in get_hash_secret_salt()
848 return get_hash_secret_salt(parser->m_parentParser); in get_hash_secret_salt()
849 return parser->m_hash_secret_salt; in get_hash_secret_salt()
853 startParsing(XML_Parser parser) { in startParsing() argument
855 if (parser->m_hash_secret_salt == 0) in startParsing()
856 parser->m_hash_secret_salt = generate_hash_secret_salt(parser); in startParsing()
857 if (parser->m_ns) { in startParsing()
861 return setContext(parser, implicitContext); in startParsing()
877 XML_Parser parser; in parserCreate() local
881 parser = (XML_Parser)memsuite->malloc_fcn(sizeof(struct XML_ParserStruct)); in parserCreate()
882 if (parser != NULL) { in parserCreate()
883 mtemp = (XML_Memory_Handling_Suite *)&(parser->m_mem); in parserCreate()
890 parser = (XML_Parser)malloc(sizeof(struct XML_ParserStruct)); in parserCreate()
891 if (parser != NULL) { in parserCreate()
892 mtemp = (XML_Memory_Handling_Suite *)&(parser->m_mem); in parserCreate()
899 if (! parser) in parserCreate()
900 return parser; in parserCreate()
902 parser->m_buffer = NULL; in parserCreate()
903 parser->m_bufferLim = NULL; in parserCreate()
905 parser->m_attsSize = INIT_ATTS_SIZE; in parserCreate()
906 parser->m_atts in parserCreate()
907 = (ATTRIBUTE *)MALLOC(parser, parser->m_attsSize * sizeof(ATTRIBUTE)); in parserCreate()
908 if (parser->m_atts == NULL) { in parserCreate()
909 FREE(parser, parser); in parserCreate()
913 parser->m_attInfo = (XML_AttrInfo *)MALLOC( in parserCreate()
914 parser, parser->m_attsSize * sizeof(XML_AttrInfo)); in parserCreate()
915 if (parser->m_attInfo == NULL) { in parserCreate()
916 FREE(parser, parser->m_atts); in parserCreate()
917 FREE(parser, parser); in parserCreate()
921 parser->m_dataBuf in parserCreate()
922 = (XML_Char *)MALLOC(parser, INIT_DATA_BUF_SIZE * sizeof(XML_Char)); in parserCreate()
923 if (parser->m_dataBuf == NULL) { in parserCreate()
924 FREE(parser, parser->m_atts); in parserCreate()
926 FREE(parser, parser->m_attInfo); in parserCreate()
928 FREE(parser, parser); in parserCreate()
931 parser->m_dataBufEnd = parser->m_dataBuf + INIT_DATA_BUF_SIZE; in parserCreate()
934 parser->m_dtd = dtd; in parserCreate()
936 parser->m_dtd = dtdCreate(&parser->m_mem); in parserCreate()
937 if (parser->m_dtd == NULL) { in parserCreate()
938 FREE(parser, parser->m_dataBuf); in parserCreate()
939 FREE(parser, parser->m_atts); in parserCreate()
941 FREE(parser, parser->m_attInfo); in parserCreate()
943 FREE(parser, parser); in parserCreate()
948 parser->m_freeBindingList = NULL; in parserCreate()
949 parser->m_freeTagList = NULL; in parserCreate()
950 parser->m_freeInternalEntities = NULL; in parserCreate()
952 parser->m_groupSize = 0; in parserCreate()
953 parser->m_groupConnector = NULL; in parserCreate()
955 parser->m_unknownEncodingHandler = NULL; in parserCreate()
956 parser->m_unknownEncodingHandlerData = NULL; in parserCreate()
958 parser->m_namespaceSeparator = ASCII_EXCL; in parserCreate()
959 parser->m_ns = XML_FALSE; in parserCreate()
960 parser->m_ns_triplets = XML_FALSE; in parserCreate()
962 parser->m_nsAtts = NULL; in parserCreate()
963 parser->m_nsAttsVersion = 0; in parserCreate()
964 parser->m_nsAttsPower = 0; in parserCreate()
966 parser->m_protocolEncodingName = NULL; in parserCreate()
968 poolInit(&parser->m_tempPool, &(parser->m_mem)); in parserCreate()
969 poolInit(&parser->m_temp2Pool, &(parser->m_mem)); in parserCreate()
970 parserInit(parser, encodingName); in parserCreate()
972 if (encodingName && ! parser->m_protocolEncodingName) { in parserCreate()
973 XML_ParserFree(parser); in parserCreate()
978 parser->m_ns = XML_TRUE; in parserCreate()
979 parser->m_internalEncoding = XmlGetInternalEncodingNS(); in parserCreate()
980 parser->m_namespaceSeparator = *nameSep; in parserCreate()
982 parser->m_internalEncoding = XmlGetInternalEncoding(); in parserCreate()
985 return parser; in parserCreate()
989 parserInit(XML_Parser parser, const XML_Char *encodingName) { in parserInit() argument
990 parser->m_processor = prologInitProcessor; in parserInit()
991 XmlPrologStateInit(&parser->m_prologState); in parserInit()
993 parser->m_protocolEncodingName = copyString(encodingName, &(parser->m_mem)); in parserInit()
995 parser->m_curBase = NULL; in parserInit()
996 XmlInitEncoding(&parser->m_initEncoding, &parser->m_encoding, 0); in parserInit()
997 parser->m_userData = NULL; in parserInit()
998 parser->m_handlerArg = NULL; in parserInit()
999 parser->m_startElementHandler = NULL; in parserInit()
1000 parser->m_endElementHandler = NULL; in parserInit()
1001 parser->m_characterDataHandler = NULL; in parserInit()
1002 parser->m_processingInstructionHandler = NULL; in parserInit()
1003 parser->m_commentHandler = NULL; in parserInit()
1004 parser->m_startCdataSectionHandler = NULL; in parserInit()
1005 parser->m_endCdataSectionHandler = NULL; in parserInit()
1006 parser->m_defaultHandler = NULL; in parserInit()
1007 parser->m_startDoctypeDeclHandler = NULL; in parserInit()
1008 parser->m_endDoctypeDeclHandler = NULL; in parserInit()
1009 parser->m_unparsedEntityDeclHandler = NULL; in parserInit()
1010 parser->m_notationDeclHandler = NULL; in parserInit()
1011 parser->m_startNamespaceDeclHandler = NULL; in parserInit()
1012 parser->m_endNamespaceDeclHandler = NULL; in parserInit()
1013 parser->m_notStandaloneHandler = NULL; in parserInit()
1014 parser->m_externalEntityRefHandler = NULL; in parserInit()
1015 parser->m_externalEntityRefHandlerArg = parser; in parserInit()
1016 parser->m_skippedEntityHandler = NULL; in parserInit()
1017 parser->m_elementDeclHandler = NULL; in parserInit()
1018 parser->m_attlistDeclHandler = NULL; in parserInit()
1019 parser->m_entityDeclHandler = NULL; in parserInit()
1020 parser->m_xmlDeclHandler = NULL; in parserInit()
1021 parser->m_bufferPtr = parser->m_buffer; in parserInit()
1022 parser->m_bufferEnd = parser->m_buffer; in parserInit()
1023 parser->m_parseEndByteIndex = 0; in parserInit()
1024 parser->m_parseEndPtr = NULL; in parserInit()
1025 parser->m_declElementType = NULL; in parserInit()
1026 parser->m_declAttributeId = NULL; in parserInit()
1027 parser->m_declEntity = NULL; in parserInit()
1028 parser->m_doctypeName = NULL; in parserInit()
1029 parser->m_doctypeSysid = NULL; in parserInit()
1030 parser->m_doctypePubid = NULL; in parserInit()
1031 parser->m_declAttributeType = NULL; in parserInit()
1032 parser->m_declNotationName = NULL; in parserInit()
1033 parser->m_declNotationPublicId = NULL; in parserInit()
1034 parser->m_declAttributeIsCdata = XML_FALSE; in parserInit()
1035 parser->m_declAttributeIsId = XML_FALSE; in parserInit()
1036 memset(&parser->m_position, 0, sizeof(POSITION)); in parserInit()
1037 parser->m_errorCode = XML_ERROR_NONE; in parserInit()
1038 parser->m_eventPtr = NULL; in parserInit()
1039 parser->m_eventEndPtr = NULL; in parserInit()
1040 parser->m_positionPtr = NULL; in parserInit()
1041 parser->m_openInternalEntities = NULL; in parserInit()
1042 parser->m_defaultExpandInternalEntities = XML_TRUE; in parserInit()
1043 parser->m_tagLevel = 0; in parserInit()
1044 parser->m_tagStack = NULL; in parserInit()
1045 parser->m_inheritedBindings = NULL; in parserInit()
1046 parser->m_nSpecifiedAtts = 0; in parserInit()
1047 parser->m_unknownEncodingMem = NULL; in parserInit()
1048 parser->m_unknownEncodingRelease = NULL; in parserInit()
1049 parser->m_unknownEncodingData = NULL; in parserInit()
1050 parser->m_parentParser = NULL; in parserInit()
1051 parser->m_parsingStatus.parsing = XML_INITIALIZED; in parserInit()
1053 parser->m_isParamEntity = XML_FALSE; in parserInit()
1054 parser->m_useForeignDTD = XML_FALSE; in parserInit()
1055 parser->m_paramEntityParsing = XML_PARAM_ENTITY_PARSING_NEVER; in parserInit()
1057 parser->m_hash_secret_salt = 0; in parserInit()
1062 moveToFreeBindingList(XML_Parser parser, BINDING *bindings) { in moveToFreeBindingList() argument
1066 b->nextTagBinding = parser->m_freeBindingList; in moveToFreeBindingList()
1067 parser->m_freeBindingList = b; in moveToFreeBindingList()
1072 XML_ParserReset(XML_Parser parser, const XML_Char *encodingName) { in XML_ParserReset() argument
1076 if (parser == NULL) in XML_ParserReset()
1079 if (parser->m_parentParser) in XML_ParserReset()
1082 tStk = parser->m_tagStack; in XML_ParserReset()
1086 tag->parent = parser->m_freeTagList; in XML_ParserReset()
1087 moveToFreeBindingList(parser, tag->bindings); in XML_ParserReset()
1089 parser->m_freeTagList = tag; in XML_ParserReset()
1092 openEntityList = parser->m_openInternalEntities; in XML_ParserReset()
1096 openEntity->next = parser->m_freeInternalEntities; in XML_ParserReset()
1097 parser->m_freeInternalEntities = openEntity; in XML_ParserReset()
1099 moveToFreeBindingList(parser, parser->m_inheritedBindings); in XML_ParserReset()
1100 FREE(parser, parser->m_unknownEncodingMem); in XML_ParserReset()
1101 if (parser->m_unknownEncodingRelease) in XML_ParserReset()
1102 parser->m_unknownEncodingRelease(parser->m_unknownEncodingData); in XML_ParserReset()
1103 poolClear(&parser->m_tempPool); in XML_ParserReset()
1104 poolClear(&parser->m_temp2Pool); in XML_ParserReset()
1105 FREE(parser, (void *)parser->m_protocolEncodingName); in XML_ParserReset()
1106 parser->m_protocolEncodingName = NULL; in XML_ParserReset()
1107 parserInit(parser, encodingName); in XML_ParserReset()
1108 dtdReset(parser->m_dtd, &parser->m_mem); in XML_ParserReset()
1113 XML_SetEncoding(XML_Parser parser, const XML_Char *encodingName) { in XML_SetEncoding() argument
1114 if (parser == NULL) in XML_SetEncoding()
1120 if (parser->m_parsingStatus.parsing == XML_PARSING in XML_SetEncoding()
1121 || parser->m_parsingStatus.parsing == XML_SUSPENDED) in XML_SetEncoding()
1125 FREE(parser, (void *)parser->m_protocolEncodingName); in XML_SetEncoding()
1129 parser->m_protocolEncodingName = NULL; in XML_SetEncoding()
1132 parser->m_protocolEncodingName = copyString(encodingName, &(parser->m_mem)); in XML_SetEncoding()
1133 if (! parser->m_protocolEncodingName) in XML_SetEncoding()
1142 XML_Parser parser = oldParser; in XML_ExternalEntityParserCreate() local
1188 oldDtd = parser->m_dtd; in XML_ExternalEntityParserCreate()
1189 oldStartElementHandler = parser->m_startElementHandler; in XML_ExternalEntityParserCreate()
1190 oldEndElementHandler = parser->m_endElementHandler; in XML_ExternalEntityParserCreate()
1191 oldCharacterDataHandler = parser->m_characterDataHandler; in XML_ExternalEntityParserCreate()
1192 oldProcessingInstructionHandler = parser->m_processingInstructionHandler; in XML_ExternalEntityParserCreate()
1193 oldCommentHandler = parser->m_commentHandler; in XML_ExternalEntityParserCreate()
1194 oldStartCdataSectionHandler = parser->m_startCdataSectionHandler; in XML_ExternalEntityParserCreate()
1195 oldEndCdataSectionHandler = parser->m_endCdataSectionHandler; in XML_ExternalEntityParserCreate()
1196 oldDefaultHandler = parser->m_defaultHandler; in XML_ExternalEntityParserCreate()
1197 oldUnparsedEntityDeclHandler = parser->m_unparsedEntityDeclHandler; in XML_ExternalEntityParserCreate()
1198 oldNotationDeclHandler = parser->m_notationDeclHandler; in XML_ExternalEntityParserCreate()
1199 oldStartNamespaceDeclHandler = parser->m_startNamespaceDeclHandler; in XML_ExternalEntityParserCreate()
1200 oldEndNamespaceDeclHandler = parser->m_endNamespaceDeclHandler; in XML_ExternalEntityParserCreate()
1201 oldNotStandaloneHandler = parser->m_notStandaloneHandler; in XML_ExternalEntityParserCreate()
1202 oldExternalEntityRefHandler = parser->m_externalEntityRefHandler; in XML_ExternalEntityParserCreate()
1203 oldSkippedEntityHandler = parser->m_skippedEntityHandler; in XML_ExternalEntityParserCreate()
1204 oldUnknownEncodingHandler = parser->m_unknownEncodingHandler; in XML_ExternalEntityParserCreate()
1205 oldElementDeclHandler = parser->m_elementDeclHandler; in XML_ExternalEntityParserCreate()
1206 oldAttlistDeclHandler = parser->m_attlistDeclHandler; in XML_ExternalEntityParserCreate()
1207 oldEntityDeclHandler = parser->m_entityDeclHandler; in XML_ExternalEntityParserCreate()
1208 oldXmlDeclHandler = parser->m_xmlDeclHandler; in XML_ExternalEntityParserCreate()
1209 oldDeclElementType = parser->m_declElementType; in XML_ExternalEntityParserCreate()
1211 oldUserData = parser->m_userData; in XML_ExternalEntityParserCreate()
1212 oldHandlerArg = parser->m_handlerArg; in XML_ExternalEntityParserCreate()
1213 oldDefaultExpandInternalEntities = parser->m_defaultExpandInternalEntities; in XML_ExternalEntityParserCreate()
1214 oldExternalEntityRefHandlerArg = parser->m_externalEntityRefHandlerArg; in XML_ExternalEntityParserCreate()
1216 oldParamEntityParsing = parser->m_paramEntityParsing; in XML_ExternalEntityParserCreate()
1217 oldInEntityValue = parser->m_prologState.inEntityValue; in XML_ExternalEntityParserCreate()
1219 oldns_triplets = parser->m_ns_triplets; in XML_ExternalEntityParserCreate()
1225 oldhash_secret_salt = parser->m_hash_secret_salt; in XML_ExternalEntityParserCreate()
1237 if (parser->m_ns) { in XML_ExternalEntityParserCreate()
1239 *tmp = parser->m_namespaceSeparator; in XML_ExternalEntityParserCreate()
1240 parser = parserCreate(encodingName, &parser->m_mem, tmp, newDtd); in XML_ExternalEntityParserCreate()
1242 parser = parserCreate(encodingName, &parser->m_mem, NULL, newDtd); in XML_ExternalEntityParserCreate()
1245 if (! parser) in XML_ExternalEntityParserCreate()
1248 parser->m_startElementHandler = oldStartElementHandler; in XML_ExternalEntityParserCreate()
1249 parser->m_endElementHandler = oldEndElementHandler; in XML_ExternalEntityParserCreate()
1250 parser->m_characterDataHandler = oldCharacterDataHandler; in XML_ExternalEntityParserCreate()
1251 parser->m_processingInstructionHandler = oldProcessingInstructionHandler; in XML_ExternalEntityParserCreate()
1252 parser->m_commentHandler = oldCommentHandler; in XML_ExternalEntityParserCreate()
1253 parser->m_startCdataSectionHandler = oldStartCdataSectionHandler; in XML_ExternalEntityParserCreate()
1254 parser->m_endCdataSectionHandler = oldEndCdataSectionHandler; in XML_ExternalEntityParserCreate()
1255 parser->m_defaultHandler = oldDefaultHandler; in XML_ExternalEntityParserCreate()
1256 parser->m_unparsedEntityDeclHandler = oldUnparsedEntityDeclHandler; in XML_ExternalEntityParserCreate()
1257 parser->m_notationDeclHandler = oldNotationDeclHandler; in XML_ExternalEntityParserCreate()
1258 parser->m_startNamespaceDeclHandler = oldStartNamespaceDeclHandler; in XML_ExternalEntityParserCreate()
1259 parser->m_endNamespaceDeclHandler = oldEndNamespaceDeclHandler; in XML_ExternalEntityParserCreate()
1260 parser->m_notStandaloneHandler = oldNotStandaloneHandler; in XML_ExternalEntityParserCreate()
1261 parser->m_externalEntityRefHandler = oldExternalEntityRefHandler; in XML_ExternalEntityParserCreate()
1262 parser->m_skippedEntityHandler = oldSkippedEntityHandler; in XML_ExternalEntityParserCreate()
1263 parser->m_unknownEncodingHandler = oldUnknownEncodingHandler; in XML_ExternalEntityParserCreate()
1264 parser->m_elementDeclHandler = oldElementDeclHandler; in XML_ExternalEntityParserCreate()
1265 parser->m_attlistDeclHandler = oldAttlistDeclHandler; in XML_ExternalEntityParserCreate()
1266 parser->m_entityDeclHandler = oldEntityDeclHandler; in XML_ExternalEntityParserCreate()
1267 parser->m_xmlDeclHandler = oldXmlDeclHandler; in XML_ExternalEntityParserCreate()
1268 parser->m_declElementType = oldDeclElementType; in XML_ExternalEntityParserCreate()
1269 parser->m_userData = oldUserData; in XML_ExternalEntityParserCreate()
1271 parser->m_handlerArg = parser->m_userData; in XML_ExternalEntityParserCreate()
1273 parser->m_handlerArg = parser; in XML_ExternalEntityParserCreate()
1275 parser->m_externalEntityRefHandlerArg = oldExternalEntityRefHandlerArg; in XML_ExternalEntityParserCreate()
1276 parser->m_defaultExpandInternalEntities = oldDefaultExpandInternalEntities; in XML_ExternalEntityParserCreate()
1277 parser->m_ns_triplets = oldns_triplets; in XML_ExternalEntityParserCreate()
1278 parser->m_hash_secret_salt = oldhash_secret_salt; in XML_ExternalEntityParserCreate()
1279 parser->m_parentParser = oldParser; in XML_ExternalEntityParserCreate()
1281 parser->m_paramEntityParsing = oldParamEntityParsing; in XML_ExternalEntityParserCreate()
1282 parser->m_prologState.inEntityValue = oldInEntityValue; in XML_ExternalEntityParserCreate()
1285 if (! dtdCopy(oldParser, parser->m_dtd, oldDtd, &parser->m_mem) in XML_ExternalEntityParserCreate()
1286 || ! setContext(parser, context)) { in XML_ExternalEntityParserCreate()
1287 XML_ParserFree(parser); in XML_ExternalEntityParserCreate()
1290 parser->m_processor = externalEntityInitProcessor; in XML_ExternalEntityParserCreate()
1300 parser->m_isParamEntity = XML_TRUE; in XML_ExternalEntityParserCreate()
1301 XmlPrologStateInitExternalEntity(&parser->m_prologState); in XML_ExternalEntityParserCreate()
1302 parser->m_processor = externalParEntInitProcessor; in XML_ExternalEntityParserCreate()
1305 return parser; in XML_ExternalEntityParserCreate()
1309 destroyBindings(BINDING *bindings, XML_Parser parser) { in destroyBindings() argument
1315 FREE(parser, b->uri); in destroyBindings()
1316 FREE(parser, b); in destroyBindings()
1321 XML_ParserFree(XML_Parser parser) { in XML_ParserFree() argument
1324 if (parser == NULL) in XML_ParserFree()
1327 tagList = parser->m_tagStack; in XML_ParserFree()
1331 if (parser->m_freeTagList == NULL) in XML_ParserFree()
1333 tagList = parser->m_freeTagList; in XML_ParserFree()
1334 parser->m_freeTagList = NULL; in XML_ParserFree()
1338 FREE(parser, p->buf); in XML_ParserFree()
1339 destroyBindings(p->bindings, parser); in XML_ParserFree()
1340 FREE(parser, p); in XML_ParserFree()
1343 entityList = parser->m_openInternalEntities; in XML_ParserFree()
1347 if (parser->m_freeInternalEntities == NULL) in XML_ParserFree()
1349 entityList = parser->m_freeInternalEntities; in XML_ParserFree()
1350 parser->m_freeInternalEntities = NULL; in XML_ParserFree()
1354 FREE(parser, openEntity); in XML_ParserFree()
1357 destroyBindings(parser->m_freeBindingList, parser); in XML_ParserFree()
1358 destroyBindings(parser->m_inheritedBindings, parser); in XML_ParserFree()
1359 poolDestroy(&parser->m_tempPool); in XML_ParserFree()
1360 poolDestroy(&parser->m_temp2Pool); in XML_ParserFree()
1361 FREE(parser, (void *)parser->m_protocolEncodingName); in XML_ParserFree()
1366 if (! parser->m_isParamEntity && parser->m_dtd) in XML_ParserFree()
1368 if (parser->m_dtd) in XML_ParserFree()
1370 dtdDestroy(parser->m_dtd, (XML_Bool)! parser->m_parentParser, in XML_ParserFree()
1371 &parser->m_mem); in XML_ParserFree()
1372 FREE(parser, (void *)parser->m_atts); in XML_ParserFree()
1374 FREE(parser, (void *)parser->m_attInfo); in XML_ParserFree()
1376 FREE(parser, parser->m_groupConnector); in XML_ParserFree()
1377 FREE(parser, parser->m_buffer); in XML_ParserFree()
1378 FREE(parser, parser->m_dataBuf); in XML_ParserFree()
1379 FREE(parser, parser->m_nsAtts); in XML_ParserFree()
1380 FREE(parser, parser->m_unknownEncodingMem); in XML_ParserFree()
1381 if (parser->m_unknownEncodingRelease) in XML_ParserFree()
1382 parser->m_unknownEncodingRelease(parser->m_unknownEncodingData); in XML_ParserFree()
1383 FREE(parser, parser); in XML_ParserFree()
1387 XML_UseParserAsHandlerArg(XML_Parser parser) { in XML_UseParserAsHandlerArg() argument
1388 if (parser != NULL) in XML_UseParserAsHandlerArg()
1389 parser->m_handlerArg = parser; in XML_UseParserAsHandlerArg()
1393 XML_UseForeignDTD(XML_Parser parser, XML_Bool useDTD) { in XML_UseForeignDTD() argument
1394 if (parser == NULL) in XML_UseForeignDTD()
1398 if (parser->m_parsingStatus.parsing == XML_PARSING in XML_UseForeignDTD()
1399 || parser->m_parsingStatus.parsing == XML_SUSPENDED) in XML_UseForeignDTD()
1401 parser->m_useForeignDTD = useDTD; in XML_UseForeignDTD()
1409 XML_SetReturnNSTriplet(XML_Parser parser, int do_nst) { in XML_SetReturnNSTriplet() argument
1410 if (parser == NULL) in XML_SetReturnNSTriplet()
1413 if (parser->m_parsingStatus.parsing == XML_PARSING in XML_SetReturnNSTriplet()
1414 || parser->m_parsingStatus.parsing == XML_SUSPENDED) in XML_SetReturnNSTriplet()
1416 parser->m_ns_triplets = do_nst ? XML_TRUE : XML_FALSE; in XML_SetReturnNSTriplet()
1420 XML_SetUserData(XML_Parser parser, void *p) { in XML_SetUserData() argument
1421 if (parser == NULL) in XML_SetUserData()
1423 if (parser->m_handlerArg == parser->m_userData) in XML_SetUserData()
1424 parser->m_handlerArg = parser->m_userData = p; in XML_SetUserData()
1426 parser->m_userData = p; in XML_SetUserData()
1430 XML_SetBase(XML_Parser parser, const XML_Char *p) { in XML_SetBase() argument
1431 if (parser == NULL) in XML_SetBase()
1434 p = poolCopyString(&parser->m_dtd->pool, p); in XML_SetBase()
1437 parser->m_curBase = p; in XML_SetBase()
1439 parser->m_curBase = NULL; in XML_SetBase()
1444 XML_GetBase(XML_Parser parser) { in XML_GetBase() argument
1445 if (parser == NULL) in XML_GetBase()
1447 return parser->m_curBase; in XML_GetBase()
1451 XML_GetSpecifiedAttributeCount(XML_Parser parser) { in XML_GetSpecifiedAttributeCount() argument
1452 if (parser == NULL) in XML_GetSpecifiedAttributeCount()
1454 return parser->m_nSpecifiedAtts; in XML_GetSpecifiedAttributeCount()
1458 XML_GetIdAttributeIndex(XML_Parser parser) { in XML_GetIdAttributeIndex() argument
1459 if (parser == NULL) in XML_GetIdAttributeIndex()
1461 return parser->m_idAttIndex; in XML_GetIdAttributeIndex()
1466 XML_GetAttributeInfo(XML_Parser parser) { in XML_GetAttributeInfo() argument
1467 if (parser == NULL) in XML_GetAttributeInfo()
1469 return parser->m_attInfo; in XML_GetAttributeInfo()
1474 XML_SetElementHandler(XML_Parser parser, XML_StartElementHandler start, in XML_SetElementHandler() argument
1476 if (parser == NULL) in XML_SetElementHandler()
1478 parser->m_startElementHandler = start; in XML_SetElementHandler()
1479 parser->m_endElementHandler = end; in XML_SetElementHandler()
1483 XML_SetStartElementHandler(XML_Parser parser, XML_StartElementHandler start) { in XML_SetStartElementHandler() argument
1484 if (parser != NULL) in XML_SetStartElementHandler()
1485 parser->m_startElementHandler = start; in XML_SetStartElementHandler()
1489 XML_SetEndElementHandler(XML_Parser parser, XML_EndElementHandler end) { in XML_SetEndElementHandler() argument
1490 if (parser != NULL) in XML_SetEndElementHandler()
1491 parser->m_endElementHandler = end; in XML_SetEndElementHandler()
1495 XML_SetCharacterDataHandler(XML_Parser parser, in XML_SetCharacterDataHandler() argument
1497 if (parser != NULL) in XML_SetCharacterDataHandler()
1498 parser->m_characterDataHandler = handler; in XML_SetCharacterDataHandler()
1502 XML_SetProcessingInstructionHandler(XML_Parser parser, in XML_SetProcessingInstructionHandler() argument
1504 if (parser != NULL) in XML_SetProcessingInstructionHandler()
1505 parser->m_processingInstructionHandler = handler; in XML_SetProcessingInstructionHandler()
1509 XML_SetCommentHandler(XML_Parser parser, XML_CommentHandler handler) { in XML_SetCommentHandler() argument
1510 if (parser != NULL) in XML_SetCommentHandler()
1511 parser->m_commentHandler = handler; in XML_SetCommentHandler()
1515 XML_SetCdataSectionHandler(XML_Parser parser, in XML_SetCdataSectionHandler() argument
1518 if (parser == NULL) in XML_SetCdataSectionHandler()
1520 parser->m_startCdataSectionHandler = start; in XML_SetCdataSectionHandler()
1521 parser->m_endCdataSectionHandler = end; in XML_SetCdataSectionHandler()
1525 XML_SetStartCdataSectionHandler(XML_Parser parser, in XML_SetStartCdataSectionHandler() argument
1527 if (parser != NULL) in XML_SetStartCdataSectionHandler()
1528 parser->m_startCdataSectionHandler = start; in XML_SetStartCdataSectionHandler()
1532 XML_SetEndCdataSectionHandler(XML_Parser parser, in XML_SetEndCdataSectionHandler() argument
1534 if (parser != NULL) in XML_SetEndCdataSectionHandler()
1535 parser->m_endCdataSectionHandler = end; in XML_SetEndCdataSectionHandler()
1539 XML_SetDefaultHandler(XML_Parser parser, XML_DefaultHandler handler) { in XML_SetDefaultHandler() argument
1540 if (parser == NULL) in XML_SetDefaultHandler()
1542 parser->m_defaultHandler = handler; in XML_SetDefaultHandler()
1543 parser->m_defaultExpandInternalEntities = XML_FALSE; in XML_SetDefaultHandler()
1547 XML_SetDefaultHandlerExpand(XML_Parser parser, XML_DefaultHandler handler) { in XML_SetDefaultHandlerExpand() argument
1548 if (parser == NULL) in XML_SetDefaultHandlerExpand()
1550 parser->m_defaultHandler = handler; in XML_SetDefaultHandlerExpand()
1551 parser->m_defaultExpandInternalEntities = XML_TRUE; in XML_SetDefaultHandlerExpand()
1555 XML_SetDoctypeDeclHandler(XML_Parser parser, XML_StartDoctypeDeclHandler start, in XML_SetDoctypeDeclHandler() argument
1557 if (parser == NULL) in XML_SetDoctypeDeclHandler()
1559 parser->m_startDoctypeDeclHandler = start; in XML_SetDoctypeDeclHandler()
1560 parser->m_endDoctypeDeclHandler = end; in XML_SetDoctypeDeclHandler()
1564 XML_SetStartDoctypeDeclHandler(XML_Parser parser, in XML_SetStartDoctypeDeclHandler() argument
1566 if (parser != NULL) in XML_SetStartDoctypeDeclHandler()
1567 parser->m_startDoctypeDeclHandler = start; in XML_SetStartDoctypeDeclHandler()
1571 XML_SetEndDoctypeDeclHandler(XML_Parser parser, XML_EndDoctypeDeclHandler end) { in XML_SetEndDoctypeDeclHandler() argument
1572 if (parser != NULL) in XML_SetEndDoctypeDeclHandler()
1573 parser->m_endDoctypeDeclHandler = end; in XML_SetEndDoctypeDeclHandler()
1577 XML_SetUnparsedEntityDeclHandler(XML_Parser parser, in XML_SetUnparsedEntityDeclHandler() argument
1579 if (parser != NULL) in XML_SetUnparsedEntityDeclHandler()
1580 parser->m_unparsedEntityDeclHandler = handler; in XML_SetUnparsedEntityDeclHandler()
1584 XML_SetNotationDeclHandler(XML_Parser parser, XML_NotationDeclHandler handler) { in XML_SetNotationDeclHandler() argument
1585 if (parser != NULL) in XML_SetNotationDeclHandler()
1586 parser->m_notationDeclHandler = handler; in XML_SetNotationDeclHandler()
1590 XML_SetNamespaceDeclHandler(XML_Parser parser, in XML_SetNamespaceDeclHandler() argument
1593 if (parser == NULL) in XML_SetNamespaceDeclHandler()
1595 parser->m_startNamespaceDeclHandler = start; in XML_SetNamespaceDeclHandler()
1596 parser->m_endNamespaceDeclHandler = end; in XML_SetNamespaceDeclHandler()
1600 XML_SetStartNamespaceDeclHandler(XML_Parser parser, in XML_SetStartNamespaceDeclHandler() argument
1602 if (parser != NULL) in XML_SetStartNamespaceDeclHandler()
1603 parser->m_startNamespaceDeclHandler = start; in XML_SetStartNamespaceDeclHandler()
1607 XML_SetEndNamespaceDeclHandler(XML_Parser parser, in XML_SetEndNamespaceDeclHandler() argument
1609 if (parser != NULL) in XML_SetEndNamespaceDeclHandler()
1610 parser->m_endNamespaceDeclHandler = end; in XML_SetEndNamespaceDeclHandler()
1614 XML_SetNotStandaloneHandler(XML_Parser parser, in XML_SetNotStandaloneHandler() argument
1616 if (parser != NULL) in XML_SetNotStandaloneHandler()
1617 parser->m_notStandaloneHandler = handler; in XML_SetNotStandaloneHandler()
1621 XML_SetExternalEntityRefHandler(XML_Parser parser, in XML_SetExternalEntityRefHandler() argument
1623 if (parser != NULL) in XML_SetExternalEntityRefHandler()
1624 parser->m_externalEntityRefHandler = handler; in XML_SetExternalEntityRefHandler()
1628 XML_SetExternalEntityRefHandlerArg(XML_Parser parser, void *arg) { in XML_SetExternalEntityRefHandlerArg() argument
1629 if (parser == NULL) in XML_SetExternalEntityRefHandlerArg()
1632 parser->m_externalEntityRefHandlerArg = (XML_Parser)arg; in XML_SetExternalEntityRefHandlerArg()
1634 parser->m_externalEntityRefHandlerArg = parser; in XML_SetExternalEntityRefHandlerArg()
1638 XML_SetSkippedEntityHandler(XML_Parser parser, in XML_SetSkippedEntityHandler() argument
1640 if (parser != NULL) in XML_SetSkippedEntityHandler()
1641 parser->m_skippedEntityHandler = handler; in XML_SetSkippedEntityHandler()
1645 XML_SetUnknownEncodingHandler(XML_Parser parser, in XML_SetUnknownEncodingHandler() argument
1647 if (parser == NULL) in XML_SetUnknownEncodingHandler()
1649 parser->m_unknownEncodingHandler = handler; in XML_SetUnknownEncodingHandler()
1650 parser->m_unknownEncodingHandlerData = data; in XML_SetUnknownEncodingHandler()
1654 XML_SetElementDeclHandler(XML_Parser parser, XML_ElementDeclHandler eldecl) { in XML_SetElementDeclHandler() argument
1655 if (parser != NULL) in XML_SetElementDeclHandler()
1656 parser->m_elementDeclHandler = eldecl; in XML_SetElementDeclHandler()
1660 XML_SetAttlistDeclHandler(XML_Parser parser, XML_AttlistDeclHandler attdecl) { in XML_SetAttlistDeclHandler() argument
1661 if (parser != NULL) in XML_SetAttlistDeclHandler()
1662 parser->m_attlistDeclHandler = attdecl; in XML_SetAttlistDeclHandler()
1666 XML_SetEntityDeclHandler(XML_Parser parser, XML_EntityDeclHandler handler) { in XML_SetEntityDeclHandler() argument
1667 if (parser != NULL) in XML_SetEntityDeclHandler()
1668 parser->m_entityDeclHandler = handler; in XML_SetEntityDeclHandler()
1672 XML_SetXmlDeclHandler(XML_Parser parser, XML_XmlDeclHandler handler) { in XML_SetXmlDeclHandler() argument
1673 if (parser != NULL) in XML_SetXmlDeclHandler()
1674 parser->m_xmlDeclHandler = handler; in XML_SetXmlDeclHandler()
1678 XML_SetParamEntityParsing(XML_Parser parser, in XML_SetParamEntityParsing() argument
1680 if (parser == NULL) in XML_SetParamEntityParsing()
1683 if (parser->m_parsingStatus.parsing == XML_PARSING in XML_SetParamEntityParsing()
1684 || parser->m_parsingStatus.parsing == XML_SUSPENDED) in XML_SetParamEntityParsing()
1687 parser->m_paramEntityParsing = peParsing; in XML_SetParamEntityParsing()
1695 XML_SetHashSalt(XML_Parser parser, unsigned long hash_salt) { in XML_SetHashSalt() argument
1696 if (parser == NULL) in XML_SetHashSalt()
1698 if (parser->m_parentParser) in XML_SetHashSalt()
1699 return XML_SetHashSalt(parser->m_parentParser, hash_salt); in XML_SetHashSalt()
1701 if (parser->m_parsingStatus.parsing == XML_PARSING in XML_SetHashSalt()
1702 || parser->m_parsingStatus.parsing == XML_SUSPENDED) in XML_SetHashSalt()
1704 parser->m_hash_secret_salt = hash_salt; in XML_SetHashSalt()
1709 XML_Parse(XML_Parser parser, const char *s, int len, int isFinal) { in XML_Parse() argument
1710 if ((parser == NULL) || (len < 0) || ((s == NULL) && (len != 0))) { in XML_Parse()
1711 if (parser != NULL) in XML_Parse()
1712 parser->m_errorCode = XML_ERROR_INVALID_ARGUMENT; in XML_Parse()
1715 switch (parser->m_parsingStatus.parsing) { in XML_Parse()
1717 parser->m_errorCode = XML_ERROR_SUSPENDED; in XML_Parse()
1720 parser->m_errorCode = XML_ERROR_FINISHED; in XML_Parse()
1723 if (parser->m_parentParser == NULL && ! startParsing(parser)) { in XML_Parse()
1724 parser->m_errorCode = XML_ERROR_NO_MEMORY; in XML_Parse()
1729 parser->m_parsingStatus.parsing = XML_PARSING; in XML_Parse()
1733 parser->m_parsingStatus.finalBuffer = (XML_Bool)isFinal; in XML_Parse()
1736 parser->m_positionPtr = parser->m_bufferPtr; in XML_Parse()
1737 parser->m_parseEndPtr = parser->m_bufferEnd; in XML_Parse()
1743 parser->m_errorCode in XML_Parse()
1744 = parser->m_processor(parser, parser->m_bufferPtr, in XML_Parse()
1745 parser->m_parseEndPtr, &parser->m_bufferPtr); in XML_Parse()
1747 if (parser->m_errorCode == XML_ERROR_NONE) { in XML_Parse()
1748 switch (parser->m_parsingStatus.parsing) { in XML_Parse()
1762 XmlUpdatePosition(parser->m_encoding, parser->m_positionPtr, in XML_Parse()
1763 parser->m_bufferPtr, &parser->m_position); in XML_Parse()
1764 parser->m_positionPtr = parser->m_bufferPtr; in XML_Parse()
1769 parser->m_parsingStatus.parsing = XML_FINISHED; in XML_Parse()
1775 parser->m_eventEndPtr = parser->m_eventPtr; in XML_Parse()
1776 parser->m_processor = errorProcessor; in XML_Parse()
1780 else if (parser->m_bufferPtr == parser->m_bufferEnd) { in XML_Parse()
1785 if (len > ((XML_Size)-1) / 2 - parser->m_parseEndByteIndex) { in XML_Parse()
1786 parser->m_errorCode = XML_ERROR_NO_MEMORY; in XML_Parse()
1787 parser->m_eventPtr = parser->m_eventEndPtr = NULL; in XML_Parse()
1788 parser->m_processor = errorProcessor; in XML_Parse()
1791 parser->m_parseEndByteIndex += len; in XML_Parse()
1792 parser->m_positionPtr = s; in XML_Parse()
1793 parser->m_parsingStatus.finalBuffer = (XML_Bool)isFinal; in XML_Parse()
1795 parser->m_errorCode in XML_Parse()
1796 = parser->m_processor(parser, s, parser->m_parseEndPtr = s + len, &end); in XML_Parse()
1798 if (parser->m_errorCode != XML_ERROR_NONE) { in XML_Parse()
1799 parser->m_eventEndPtr = parser->m_eventPtr; in XML_Parse()
1800 parser->m_processor = errorProcessor; in XML_Parse()
1803 switch (parser->m_parsingStatus.parsing) { in XML_Parse()
1810 parser->m_parsingStatus.parsing = XML_FINISHED; in XML_Parse()
1819 XmlUpdatePosition(parser->m_encoding, parser->m_positionPtr, end, in XML_Parse()
1820 &parser->m_position); in XML_Parse()
1823 if (parser->m_buffer == NULL in XML_Parse()
1824 || nLeftOver > parser->m_bufferLim - parser->m_buffer) { in XML_Parse()
1829 temp = (char *)REALLOC(parser, parser->m_buffer, bytesToAllocate); in XML_Parse()
1832 parser->m_errorCode = XML_ERROR_NO_MEMORY; in XML_Parse()
1833 parser->m_eventPtr = parser->m_eventEndPtr = NULL; in XML_Parse()
1834 parser->m_processor = errorProcessor; in XML_Parse()
1837 parser->m_buffer = temp; in XML_Parse()
1838 parser->m_bufferLim = parser->m_buffer + bytesToAllocate; in XML_Parse()
1840 memcpy(parser->m_buffer, end, nLeftOver); in XML_Parse()
1842 parser->m_bufferPtr = parser->m_buffer; in XML_Parse()
1843 parser->m_bufferEnd = parser->m_buffer + nLeftOver; in XML_Parse()
1844 parser->m_positionPtr = parser->m_bufferPtr; in XML_Parse()
1845 parser->m_parseEndPtr = parser->m_bufferEnd; in XML_Parse()
1846 parser->m_eventPtr = parser->m_bufferPtr; in XML_Parse()
1847 parser->m_eventEndPtr = parser->m_bufferPtr; in XML_Parse()
1852 void *buff = XML_GetBuffer(parser, len); in XML_Parse()
1857 return XML_ParseBuffer(parser, len, isFinal); in XML_Parse()
1863 XML_ParseBuffer(XML_Parser parser, int len, int isFinal) { in XML_ParseBuffer() argument
1867 if (parser == NULL) in XML_ParseBuffer()
1869 switch (parser->m_parsingStatus.parsing) { in XML_ParseBuffer()
1871 parser->m_errorCode = XML_ERROR_SUSPENDED; in XML_ParseBuffer()
1874 parser->m_errorCode = XML_ERROR_FINISHED; in XML_ParseBuffer()
1877 if (parser->m_parentParser == NULL && ! startParsing(parser)) { in XML_ParseBuffer()
1878 parser->m_errorCode = XML_ERROR_NO_MEMORY; in XML_ParseBuffer()
1883 parser->m_parsingStatus.parsing = XML_PARSING; in XML_ParseBuffer()
1886 start = parser->m_bufferPtr; in XML_ParseBuffer()
1887 parser->m_positionPtr = start; in XML_ParseBuffer()
1888 parser->m_bufferEnd += len; in XML_ParseBuffer()
1889 parser->m_parseEndPtr = parser->m_bufferEnd; in XML_ParseBuffer()
1890 parser->m_parseEndByteIndex += len; in XML_ParseBuffer()
1891 parser->m_parsingStatus.finalBuffer = (XML_Bool)isFinal; in XML_ParseBuffer()
1893 parser->m_errorCode = parser->m_processor( in XML_ParseBuffer()
1894 parser, start, parser->m_parseEndPtr, &parser->m_bufferPtr); in XML_ParseBuffer()
1896 if (parser->m_errorCode != XML_ERROR_NONE) { in XML_ParseBuffer()
1897 parser->m_eventEndPtr = parser->m_eventPtr; in XML_ParseBuffer()
1898 parser->m_processor = errorProcessor; in XML_ParseBuffer()
1901 switch (parser->m_parsingStatus.parsing) { in XML_ParseBuffer()
1908 parser->m_parsingStatus.parsing = XML_FINISHED; in XML_ParseBuffer()
1915 XmlUpdatePosition(parser->m_encoding, parser->m_positionPtr, in XML_ParseBuffer()
1916 parser->m_bufferPtr, &parser->m_position); in XML_ParseBuffer()
1917 parser->m_positionPtr = parser->m_bufferPtr; in XML_ParseBuffer()
1922 XML_GetBuffer(XML_Parser parser, int len) { in XML_GetBuffer() argument
1923 if (parser == NULL) in XML_GetBuffer()
1926 parser->m_errorCode = XML_ERROR_NO_MEMORY; in XML_GetBuffer()
1929 switch (parser->m_parsingStatus.parsing) { in XML_GetBuffer()
1931 parser->m_errorCode = XML_ERROR_SUSPENDED; in XML_GetBuffer()
1934 parser->m_errorCode = XML_ERROR_FINISHED; in XML_GetBuffer()
1939 if (len > EXPAT_SAFE_PTR_DIFF(parser->m_bufferLim, parser->m_bufferEnd)) { in XML_GetBuffer()
1946 parser->m_bufferEnd, parser->m_bufferPtr)); in XML_GetBuffer()
1948 parser->m_errorCode = XML_ERROR_NO_MEMORY; in XML_GetBuffer()
1952 keep = (int)EXPAT_SAFE_PTR_DIFF(parser->m_bufferPtr, parser->m_buffer); in XML_GetBuffer()
1958 <= EXPAT_SAFE_PTR_DIFF(parser->m_bufferLim, parser->m_buffer)) { in XML_GetBuffer()
1960 if (keep < EXPAT_SAFE_PTR_DIFF(parser->m_bufferPtr, parser->m_buffer)) { in XML_GetBuffer()
1962 = (int)EXPAT_SAFE_PTR_DIFF(parser->m_bufferPtr, parser->m_buffer) in XML_GetBuffer()
1966 memmove(parser->m_buffer, &parser->m_buffer[offset], in XML_GetBuffer()
1967 parser->m_bufferEnd - parser->m_bufferPtr + keep); in XML_GetBuffer()
1968 parser->m_bufferEnd -= offset; in XML_GetBuffer()
1969 parser->m_bufferPtr -= offset; in XML_GetBuffer()
1972 if (parser->m_buffer && parser->m_bufferPtr) { in XML_GetBuffer()
1973 memmove(parser->m_buffer, parser->m_bufferPtr, in XML_GetBuffer()
1974 EXPAT_SAFE_PTR_DIFF(parser->m_bufferEnd, parser->m_bufferPtr)); in XML_GetBuffer()
1975 parser->m_bufferEnd in XML_GetBuffer()
1976 = parser->m_buffer in XML_GetBuffer()
1977 + EXPAT_SAFE_PTR_DIFF(parser->m_bufferEnd, parser->m_bufferPtr); in XML_GetBuffer()
1978 parser->m_bufferPtr = parser->m_buffer; in XML_GetBuffer()
1984 = (int)EXPAT_SAFE_PTR_DIFF(parser->m_bufferLim, parser->m_bufferPtr); in XML_GetBuffer()
1992 parser->m_errorCode = XML_ERROR_NO_MEMORY; in XML_GetBuffer()
1995 newBuf = (char *)MALLOC(parser, bufferSize); in XML_GetBuffer()
1997 parser->m_errorCode = XML_ERROR_NO_MEMORY; in XML_GetBuffer()
2000 parser->m_bufferLim = newBuf + bufferSize; in XML_GetBuffer()
2002 if (parser->m_bufferPtr) { in XML_GetBuffer()
2003 memcpy(newBuf, &parser->m_bufferPtr[-keep], in XML_GetBuffer()
2004 EXPAT_SAFE_PTR_DIFF(parser->m_bufferEnd, parser->m_bufferPtr) in XML_GetBuffer()
2006 FREE(parser, parser->m_buffer); in XML_GetBuffer()
2007 parser->m_buffer = newBuf; in XML_GetBuffer()
2008 parser->m_bufferEnd in XML_GetBuffer()
2009 = parser->m_buffer in XML_GetBuffer()
2010 + EXPAT_SAFE_PTR_DIFF(parser->m_bufferEnd, parser->m_bufferPtr) in XML_GetBuffer()
2012 parser->m_bufferPtr = parser->m_buffer + keep; in XML_GetBuffer()
2015 parser->m_bufferEnd = newBuf; in XML_GetBuffer()
2016 parser->m_bufferPtr = parser->m_buffer = newBuf; in XML_GetBuffer()
2019 if (parser->m_bufferPtr) { in XML_GetBuffer()
2020 memcpy(newBuf, parser->m_bufferPtr, in XML_GetBuffer()
2021 EXPAT_SAFE_PTR_DIFF(parser->m_bufferEnd, parser->m_bufferPtr)); in XML_GetBuffer()
2022 FREE(parser, parser->m_buffer); in XML_GetBuffer()
2023 parser->m_bufferEnd in XML_GetBuffer()
2025 + EXPAT_SAFE_PTR_DIFF(parser->m_bufferEnd, parser->m_bufferPtr); in XML_GetBuffer()
2028 parser->m_bufferEnd = newBuf; in XML_GetBuffer()
2030 parser->m_bufferPtr = parser->m_buffer = newBuf; in XML_GetBuffer()
2033 parser->m_eventPtr = parser->m_eventEndPtr = NULL; in XML_GetBuffer()
2034 parser->m_positionPtr = NULL; in XML_GetBuffer()
2036 return parser->m_bufferEnd; in XML_GetBuffer()
2040 XML_StopParser(XML_Parser parser, XML_Bool resumable) { in XML_StopParser() argument
2041 if (parser == NULL) in XML_StopParser()
2043 switch (parser->m_parsingStatus.parsing) { in XML_StopParser()
2046 parser->m_errorCode = XML_ERROR_SUSPENDED; in XML_StopParser()
2049 parser->m_parsingStatus.parsing = XML_FINISHED; in XML_StopParser()
2052 parser->m_errorCode = XML_ERROR_FINISHED; in XML_StopParser()
2057 if (parser->m_isParamEntity) { in XML_StopParser()
2058 parser->m_errorCode = XML_ERROR_SUSPEND_PE; in XML_StopParser()
2062 parser->m_parsingStatus.parsing = XML_SUSPENDED; in XML_StopParser()
2064 parser->m_parsingStatus.parsing = XML_FINISHED; in XML_StopParser()
2070 XML_ResumeParser(XML_Parser parser) { in XML_ResumeParser() argument
2073 if (parser == NULL) in XML_ResumeParser()
2075 if (parser->m_parsingStatus.parsing != XML_SUSPENDED) { in XML_ResumeParser()
2076 parser->m_errorCode = XML_ERROR_NOT_SUSPENDED; in XML_ResumeParser()
2079 parser->m_parsingStatus.parsing = XML_PARSING; in XML_ResumeParser()
2081 parser->m_errorCode = parser->m_processor( in XML_ResumeParser()
2082 parser, parser->m_bufferPtr, parser->m_parseEndPtr, &parser->m_bufferPtr); in XML_ResumeParser()
2084 if (parser->m_errorCode != XML_ERROR_NONE) { in XML_ResumeParser()
2085 parser->m_eventEndPtr = parser->m_eventPtr; in XML_ResumeParser()
2086 parser->m_processor = errorProcessor; in XML_ResumeParser()
2089 switch (parser->m_parsingStatus.parsing) { in XML_ResumeParser()
2095 if (parser->m_parsingStatus.finalBuffer) { in XML_ResumeParser()
2096 parser->m_parsingStatus.parsing = XML_FINISHED; in XML_ResumeParser()
2103 XmlUpdatePosition(parser->m_encoding, parser->m_positionPtr, in XML_ResumeParser()
2104 parser->m_bufferPtr, &parser->m_position); in XML_ResumeParser()
2105 parser->m_positionPtr = parser->m_bufferPtr; in XML_ResumeParser()
2110 XML_GetParsingStatus(XML_Parser parser, XML_ParsingStatus *status) { in XML_GetParsingStatus() argument
2111 if (parser == NULL) in XML_GetParsingStatus()
2114 *status = parser->m_parsingStatus; in XML_GetParsingStatus()
2118 XML_GetErrorCode(XML_Parser parser) { in XML_GetErrorCode() argument
2119 if (parser == NULL) in XML_GetErrorCode()
2121 return parser->m_errorCode; in XML_GetErrorCode()
2125 XML_GetCurrentByteIndex(XML_Parser parser) { in XML_GetCurrentByteIndex() argument
2126 if (parser == NULL) in XML_GetCurrentByteIndex()
2128 if (parser->m_eventPtr) in XML_GetCurrentByteIndex()
2129 return (XML_Index)(parser->m_parseEndByteIndex in XML_GetCurrentByteIndex()
2130 - (parser->m_parseEndPtr - parser->m_eventPtr)); in XML_GetCurrentByteIndex()
2135 XML_GetCurrentByteCount(XML_Parser parser) { in XML_GetCurrentByteCount() argument
2136 if (parser == NULL) in XML_GetCurrentByteCount()
2138 if (parser->m_eventEndPtr && parser->m_eventPtr) in XML_GetCurrentByteCount()
2139 return (int)(parser->m_eventEndPtr - parser->m_eventPtr); in XML_GetCurrentByteCount()
2144 XML_GetInputContext(XML_Parser parser, int *offset, int *size) { in XML_GetInputContext() argument
2146 if (parser == NULL) in XML_GetInputContext()
2148 if (parser->m_eventPtr && parser->m_buffer) { in XML_GetInputContext()
2150 *offset = (int)(parser->m_eventPtr - parser->m_buffer); in XML_GetInputContext()
2152 *size = (int)(parser->m_bufferEnd - parser->m_buffer); in XML_GetInputContext()
2153 return parser->m_buffer; in XML_GetInputContext()
2156 (void)parser; in XML_GetInputContext()
2164 XML_GetCurrentLineNumber(XML_Parser parser) { in XML_GetCurrentLineNumber() argument
2165 if (parser == NULL) in XML_GetCurrentLineNumber()
2167 if (parser->m_eventPtr && parser->m_eventPtr >= parser->m_positionPtr) { in XML_GetCurrentLineNumber()
2168 XmlUpdatePosition(parser->m_encoding, parser->m_positionPtr, in XML_GetCurrentLineNumber()
2169 parser->m_eventPtr, &parser->m_position); in XML_GetCurrentLineNumber()
2170 parser->m_positionPtr = parser->m_eventPtr; in XML_GetCurrentLineNumber()
2172 return parser->m_position.lineNumber + 1; in XML_GetCurrentLineNumber()
2176 XML_GetCurrentColumnNumber(XML_Parser parser) { in XML_GetCurrentColumnNumber() argument
2177 if (parser == NULL) in XML_GetCurrentColumnNumber()
2179 if (parser->m_eventPtr && parser->m_eventPtr >= parser->m_positionPtr) { in XML_GetCurrentColumnNumber()
2180 XmlUpdatePosition(parser->m_encoding, parser->m_positionPtr, in XML_GetCurrentColumnNumber()
2181 parser->m_eventPtr, &parser->m_position); in XML_GetCurrentColumnNumber()
2182 parser->m_positionPtr = parser->m_eventPtr; in XML_GetCurrentColumnNumber()
2184 return parser->m_position.columnNumber; in XML_GetCurrentColumnNumber()
2188 XML_FreeContentModel(XML_Parser parser, XML_Content *model) { in XML_FreeContentModel() argument
2189 if (parser != NULL) in XML_FreeContentModel()
2190 FREE(parser, model); in XML_FreeContentModel()
2194 XML_MemMalloc(XML_Parser parser, size_t size) { in XML_MemMalloc() argument
2195 if (parser == NULL) in XML_MemMalloc()
2197 return MALLOC(parser, size); in XML_MemMalloc()
2201 XML_MemRealloc(XML_Parser parser, void *ptr, size_t size) { in XML_MemRealloc() argument
2202 if (parser == NULL) in XML_MemRealloc()
2204 return REALLOC(parser, ptr, size); in XML_MemRealloc()
2208 XML_MemFree(XML_Parser parser, void *ptr) { in XML_MemFree() argument
2209 if (parser != NULL) in XML_MemFree()
2210 FREE(parser, ptr); in XML_MemFree()
2214 XML_DefaultCurrent(XML_Parser parser) { in XML_DefaultCurrent() argument
2215 if (parser == NULL) in XML_DefaultCurrent()
2217 if (parser->m_defaultHandler) { in XML_DefaultCurrent()
2218 if (parser->m_openInternalEntities) in XML_DefaultCurrent()
2219 reportDefault(parser, parser->m_internalEncoding, in XML_DefaultCurrent()
2220 parser->m_openInternalEntities->internalEventPtr, in XML_DefaultCurrent()
2221 parser->m_openInternalEntities->internalEventEndPtr); in XML_DefaultCurrent()
2223 reportDefault(parser, parser->m_encoding, parser->m_eventPtr, in XML_DefaultCurrent()
2224 parser->m_eventEndPtr); in XML_DefaultCurrent()
2398 storeRawNames(XML_Parser parser) { in storeRawNames() argument
2399 TAG *tag = parser->m_tagStack; in storeRawNames()
2416 char *temp = (char *)REALLOC(parser, tag->buf, bufSize); in storeRawNames()
2442 contentProcessor(XML_Parser parser, const char *start, const char *end, in contentProcessor() argument
2445 = doContent(parser, 0, parser->m_encoding, start, end, endPtr, in contentProcessor()
2446 (XML_Bool)! parser->m_parsingStatus.finalBuffer); in contentProcessor()
2448 if (! storeRawNames(parser)) in contentProcessor()
2455 externalEntityInitProcessor(XML_Parser parser, const char *start, in externalEntityInitProcessor() argument
2457 enum XML_Error result = initializeEncoding(parser); in externalEntityInitProcessor()
2460 parser->m_processor = externalEntityInitProcessor2; in externalEntityInitProcessor()
2461 return externalEntityInitProcessor2(parser, start, end, endPtr); in externalEntityInitProcessor()
2465 externalEntityInitProcessor2(XML_Parser parser, const char *start, in externalEntityInitProcessor2() argument
2468 int tok = XmlContentTok(parser->m_encoding, start, end, &next); in externalEntityInitProcessor2()
2476 if (next == end && ! parser->m_parsingStatus.finalBuffer) { in externalEntityInitProcessor2()
2483 if (! parser->m_parsingStatus.finalBuffer) { in externalEntityInitProcessor2()
2487 parser->m_eventPtr = start; in externalEntityInitProcessor2()
2490 if (! parser->m_parsingStatus.finalBuffer) { in externalEntityInitProcessor2()
2494 parser->m_eventPtr = start; in externalEntityInitProcessor2()
2497 parser->m_processor = externalEntityInitProcessor3; in externalEntityInitProcessor2()
2498 return externalEntityInitProcessor3(parser, start, end, endPtr); in externalEntityInitProcessor2()
2502 externalEntityInitProcessor3(XML_Parser parser, const char *start, in externalEntityInitProcessor3() argument
2506 parser->m_eventPtr = start; in externalEntityInitProcessor3()
2507 tok = XmlContentTok(parser->m_encoding, start, end, &next); in externalEntityInitProcessor3()
2508 parser->m_eventEndPtr = next; in externalEntityInitProcessor3()
2513 result = processXmlDecl(parser, 1, start, next); in externalEntityInitProcessor3()
2516 switch (parser->m_parsingStatus.parsing) { in externalEntityInitProcessor3()
2527 if (! parser->m_parsingStatus.finalBuffer) { in externalEntityInitProcessor3()
2533 if (! parser->m_parsingStatus.finalBuffer) { in externalEntityInitProcessor3()
2539 parser->m_processor = externalEntityContentProcessor; in externalEntityInitProcessor3()
2540 parser->m_tagLevel = 1; in externalEntityInitProcessor3()
2541 return externalEntityContentProcessor(parser, start, end, endPtr); in externalEntityInitProcessor3()
2545 externalEntityContentProcessor(XML_Parser parser, const char *start, in externalEntityContentProcessor() argument
2548 = doContent(parser, 1, parser->m_encoding, start, end, endPtr, in externalEntityContentProcessor()
2549 (XML_Bool)! parser->m_parsingStatus.finalBuffer); in externalEntityContentProcessor()
2551 if (! storeRawNames(parser)) in externalEntityContentProcessor()
2558 doContent(XML_Parser parser, int startTagLevel, const ENCODING *enc, in doContent() argument
2562 DTD *const dtd = parser->m_dtd; in doContent()
2566 if (enc == parser->m_encoding) { in doContent()
2567 eventPP = &parser->m_eventPtr; in doContent()
2568 eventEndPP = &parser->m_eventEndPtr; in doContent()
2570 eventPP = &(parser->m_openInternalEntities->internalEventPtr); in doContent()
2571 eventEndPP = &(parser->m_openInternalEntities->internalEventEndPtr); in doContent()
2586 if (parser->m_characterDataHandler) { in doContent()
2588 parser->m_characterDataHandler(parser->m_handlerArg, &c, 1); in doContent()
2589 } else if (parser->m_defaultHandler) in doContent()
2590 reportDefault(parser, enc, s, end); in doContent()
2596 if (parser->m_tagLevel != startTagLevel) in doContent()
2606 if (parser->m_tagLevel != startTagLevel) in doContent()
2633 if (parser->m_characterDataHandler) in doContent()
2634 parser->m_characterDataHandler(parser->m_handlerArg, &ch, 1); in doContent()
2635 else if (parser->m_defaultHandler) in doContent()
2636 reportDefault(parser, enc, s, next); in doContent()
2643 entity = (ENTITY *)lookup(parser, &dtd->generalEntities, name, 0); in doContent()
2655 if (parser->m_skippedEntityHandler) in doContent()
2656 parser->m_skippedEntityHandler(parser->m_handlerArg, name, 0); in doContent()
2657 else if (parser->m_defaultHandler) in doContent()
2658 reportDefault(parser, enc, s, next); in doContent()
2667 if (! parser->m_defaultExpandInternalEntities) { in doContent()
2668 if (parser->m_skippedEntityHandler) in doContent()
2669 parser->m_skippedEntityHandler(parser->m_handlerArg, entity->name, in doContent()
2671 else if (parser->m_defaultHandler) in doContent()
2672 reportDefault(parser, enc, s, next); in doContent()
2675 result = processInternalEntity(parser, entity, XML_FALSE); in doContent()
2678 } else if (parser->m_externalEntityRefHandler) { in doContent()
2681 context = getContext(parser); in doContent()
2685 if (! parser->m_externalEntityRefHandler( in doContent()
2686 parser->m_externalEntityRefHandlerArg, context, entity->base, in doContent()
2689 poolDiscard(&parser->m_tempPool); in doContent()
2690 } else if (parser->m_defaultHandler) in doContent()
2691 reportDefault(parser, enc, s, next); in doContent()
2700 if (parser->m_freeTagList) { in doContent()
2701 tag = parser->m_freeTagList; in doContent()
2702 parser->m_freeTagList = parser->m_freeTagList->parent; in doContent()
2704 tag = (TAG *)MALLOC(parser, sizeof(TAG)); in doContent()
2707 tag->buf = (char *)MALLOC(parser, INIT_TAG_BUF_SIZE); in doContent()
2709 FREE(parser, tag); in doContent()
2715 tag->parent = parser->m_tagStack; in doContent()
2716 parser->m_tagStack = tag; in doContent()
2721 ++parser->m_tagLevel; in doContent()
2740 char *temp = (char *)REALLOC(parser, tag->buf, bufSize); in doContent()
2751 result = storeAtts(parser, enc, s, &(tag->name), &(tag->bindings)); in doContent()
2754 if (parser->m_startElementHandler) in doContent()
2755 parser->m_startElementHandler(parser->m_handlerArg, tag->name.str, in doContent()
2756 (const XML_Char **)parser->m_atts); in doContent()
2757 else if (parser->m_defaultHandler) in doContent()
2758 reportDefault(parser, enc, s, next); in doContent()
2759 poolClear(&parser->m_tempPool); in doContent()
2770 name.str = poolStoreString(&parser->m_tempPool, enc, rawName, in doContent()
2774 poolFinish(&parser->m_tempPool); in doContent()
2775 result = storeAtts(parser, enc, s, &name, &bindings); in doContent()
2777 freeBindings(parser, bindings); in doContent()
2780 poolFinish(&parser->m_tempPool); in doContent()
2781 if (parser->m_startElementHandler) { in doContent()
2782 parser->m_startElementHandler(parser->m_handlerArg, name.str, in doContent()
2783 (const XML_Char **)parser->m_atts); in doContent()
2786 if (parser->m_endElementHandler) { in doContent()
2787 if (parser->m_startElementHandler) in doContent()
2789 parser->m_endElementHandler(parser->m_handlerArg, name.str); in doContent()
2792 if (noElmHandlers && parser->m_defaultHandler) in doContent()
2793 reportDefault(parser, enc, s, next); in doContent()
2794 poolClear(&parser->m_tempPool); in doContent()
2795 freeBindings(parser, bindings); in doContent()
2797 if ((parser->m_tagLevel == 0) in doContent()
2798 && (parser->m_parsingStatus.parsing != XML_FINISHED)) { in doContent()
2799 if (parser->m_parsingStatus.parsing == XML_SUSPENDED) in doContent()
2800 parser->m_processor = epilogProcessor; in doContent()
2802 return epilogProcessor(parser, next, end, nextPtr); in doContent()
2806 if (parser->m_tagLevel == startTagLevel) in doContent()
2811 TAG *tag = parser->m_tagStack; in doContent()
2812 parser->m_tagStack = tag->parent; in doContent()
2813 tag->parent = parser->m_freeTagList; in doContent()
2814 parser->m_freeTagList = tag; in doContent()
2822 --parser->m_tagLevel; in doContent()
2823 if (parser->m_endElementHandler) { in doContent()
2828 if (parser->m_ns && localPart) { in doContent()
2838 if (parser->m_ns_triplets && prefix) { in doContent()
2839 *uri++ = parser->m_namespaceSeparator; in doContent()
2845 parser->m_endElementHandler(parser->m_handlerArg, tag->name.str); in doContent()
2846 } else if (parser->m_defaultHandler) in doContent()
2847 reportDefault(parser, enc, s, next); in doContent()
2850 if (parser->m_endNamespaceDeclHandler) in doContent()
2851 parser->m_endNamespaceDeclHandler(parser->m_handlerArg, in doContent()
2854 b->nextTagBinding = parser->m_freeBindingList; in doContent()
2855 parser->m_freeBindingList = b; in doContent()
2858 if ((parser->m_tagLevel == 0) in doContent()
2859 && (parser->m_parsingStatus.parsing != XML_FINISHED)) { in doContent()
2860 if (parser->m_parsingStatus.parsing == XML_SUSPENDED) in doContent()
2861 parser->m_processor = epilogProcessor; in doContent()
2863 return epilogProcessor(parser, next, end, nextPtr); in doContent()
2871 if (parser->m_characterDataHandler) { in doContent()
2873 parser->m_characterDataHandler(parser->m_handlerArg, buf, in doContent()
2875 } else if (parser->m_defaultHandler) in doContent()
2876 reportDefault(parser, enc, s, next); in doContent()
2881 if (parser->m_characterDataHandler) { in doContent()
2883 parser->m_characterDataHandler(parser->m_handlerArg, &c, 1); in doContent()
2884 } else if (parser->m_defaultHandler) in doContent()
2885 reportDefault(parser, enc, s, next); in doContent()
2889 if (parser->m_startCdataSectionHandler) in doContent()
2890 parser->m_startCdataSectionHandler(parser->m_handlerArg); in doContent()
2904 else if (0 && parser->m_characterDataHandler) in doContent()
2905 parser->m_characterDataHandler(parser->m_handlerArg, parser->m_dataBuf, in doContent()
2908 else if (parser->m_defaultHandler) in doContent()
2909 reportDefault(parser, enc, s, next); in doContent()
2910 result = doCdataSection(parser, enc, &next, end, nextPtr, haveMore); in doContent()
2914 parser->m_processor = cdataSectionProcessor; in doContent()
2923 if (parser->m_characterDataHandler) { in doContent()
2925 ICHAR *dataPtr = (ICHAR *)parser->m_dataBuf; in doContent()
2926 XmlConvert(enc, &s, end, &dataPtr, (ICHAR *)parser->m_dataBufEnd); in doContent()
2927 parser->m_characterDataHandler( in doContent()
2928 parser->m_handlerArg, parser->m_dataBuf, in doContent()
2929 (int)(dataPtr - (ICHAR *)parser->m_dataBuf)); in doContent()
2931 parser->m_characterDataHandler( in doContent()
2932 parser->m_handlerArg, (XML_Char *)s, in doContent()
2934 } else if (parser->m_defaultHandler) in doContent()
2935 reportDefault(parser, enc, s, end); in doContent()
2943 if (parser->m_tagLevel != startTagLevel) { in doContent()
2950 XML_CharacterDataHandler charDataHandler = parser->m_characterDataHandler; in doContent()
2954 ICHAR *dataPtr = (ICHAR *)parser->m_dataBuf; in doContent()
2956 enc, &s, next, &dataPtr, (ICHAR *)parser->m_dataBufEnd); in doContent()
2958 charDataHandler(parser->m_handlerArg, parser->m_dataBuf, in doContent()
2959 (int)(dataPtr - (ICHAR *)parser->m_dataBuf)); in doContent()
2966 charDataHandler(parser->m_handlerArg, (XML_Char *)s, in doContent()
2968 } else if (parser->m_defaultHandler) in doContent()
2969 reportDefault(parser, enc, s, next); in doContent()
2972 if (! reportProcessingInstruction(parser, enc, s, next)) in doContent()
2976 if (! reportComment(parser, enc, s, next)) in doContent()
2987 if (parser->m_defaultHandler) in doContent()
2988 reportDefault(parser, enc, s, next); in doContent()
2993 switch (parser->m_parsingStatus.parsing) { in doContent()
3010 freeBindings(XML_Parser parser, BINDING *bindings) { in freeBindings() argument
3017 if (parser->m_endNamespaceDeclHandler) in freeBindings()
3018 parser->m_endNamespaceDeclHandler(parser->m_handlerArg, b->prefix->name); in freeBindings()
3021 b->nextTagBinding = parser->m_freeBindingList; in freeBindings()
3022 parser->m_freeBindingList = b; in freeBindings()
3038 storeAtts(XML_Parser parser, const ENCODING *enc, const char *attStr, in storeAtts() argument
3040 DTD *const dtd = parser->m_dtd; /* save one level of indirection */ in storeAtts()
3055 = (ELEMENT_TYPE *)lookup(parser, &dtd->elementTypes, tagNamePtr->str, 0); in storeAtts()
3060 elementType = (ELEMENT_TYPE *)lookup(parser, &dtd->elementTypes, name, in storeAtts()
3064 if (parser->m_ns && ! setElementTypePrefix(parser, elementType)) in storeAtts()
3070 n = XmlGetAttributes(enc, attStr, parser->m_attsSize, parser->m_atts); in storeAtts()
3071 if (n + nDefaultAtts > parser->m_attsSize) { in storeAtts()
3072 int oldAttsSize = parser->m_attsSize; in storeAtts()
3077 parser->m_attsSize = n + nDefaultAtts + INIT_ATTS_SIZE; in storeAtts()
3078 temp = (ATTRIBUTE *)REALLOC(parser, (void *)parser->m_atts, in storeAtts()
3079 parser->m_attsSize * sizeof(ATTRIBUTE)); in storeAtts()
3081 parser->m_attsSize = oldAttsSize; in storeAtts()
3084 parser->m_atts = temp; in storeAtts()
3086 temp2 = (XML_AttrInfo *)REALLOC(parser, (void *)parser->m_attInfo, in storeAtts()
3087 parser->m_attsSize * sizeof(XML_AttrInfo)); in storeAtts()
3089 parser->m_attsSize = oldAttsSize; in storeAtts()
3092 parser->m_attInfo = temp2; in storeAtts()
3095 XmlGetAttributes(enc, attStr, n, parser->m_atts); in storeAtts()
3098 appAtts = (const XML_Char **)parser->m_atts; in storeAtts()
3100 ATTRIBUTE *currAtt = &parser->m_atts[i]; in storeAtts()
3102 XML_AttrInfo *currAttInfo = &parser->m_attInfo[i]; in storeAtts()
3106 = getAttributeId(parser, enc, currAtt->name, in storeAtts()
3112 = parser->m_parseEndByteIndex - (parser->m_parseEndPtr - currAtt->name); in storeAtts()
3115 currAttInfo->valueStart = parser->m_parseEndByteIndex in storeAtts()
3116 - (parser->m_parseEndPtr - currAtt->valuePtr); in storeAtts()
3117 currAttInfo->valueEnd = parser->m_parseEndByteIndex in storeAtts()
3118 - (parser->m_parseEndPtr - currAtt->valueEnd); in storeAtts()
3125 if (enc == parser->m_encoding) in storeAtts()
3126 parser->m_eventPtr = parser->m_atts[i].name; in storeAtts()
3131 if (! parser->m_atts[i].normalized) { in storeAtts()
3148 parser, enc, isCdata, parser->m_atts[i].valuePtr, in storeAtts()
3149 parser->m_atts[i].valueEnd, &parser->m_tempPool); in storeAtts()
3152 appAtts[attIndex] = poolStart(&parser->m_tempPool); in storeAtts()
3153 poolFinish(&parser->m_tempPool); in storeAtts()
3156 appAtts[attIndex] = poolStoreString(&parser->m_tempPool, enc, in storeAtts()
3157 parser->m_atts[i].valuePtr, in storeAtts()
3158 parser->m_atts[i].valueEnd); in storeAtts()
3161 poolFinish(&parser->m_tempPool); in storeAtts()
3167 enum XML_Error result = addBinding(parser, attId->prefix, attId, in storeAtts()
3183 parser->m_nSpecifiedAtts = attIndex; in storeAtts()
3187 parser->m_idAttIndex = i; in storeAtts()
3191 parser->m_idAttIndex = -1; in storeAtts()
3199 enum XML_Error result = addBinding(parser, da->id->prefix, da->id, in storeAtts()
3223 unsigned long version = parser->m_nsAttsVersion; in storeAtts()
3224 int nsAttsSize = (int)1 << parser->m_nsAttsPower; in storeAtts()
3225 unsigned char oldNsAttsPower = parser->m_nsAttsPower; in storeAtts()
3228 >> parser->m_nsAttsPower) { /* true for m_nsAttsPower = 0 */ in storeAtts()
3231 while (nPrefixes >> parser->m_nsAttsPower++) in storeAtts()
3233 if (parser->m_nsAttsPower < 3) in storeAtts()
3234 parser->m_nsAttsPower = 3; in storeAtts()
3235 nsAttsSize = (int)1 << parser->m_nsAttsPower; in storeAtts()
3236 temp = (NS_ATT *)REALLOC(parser, parser->m_nsAtts, in storeAtts()
3240 parser->m_nsAttsPower = oldNsAttsPower; in storeAtts()
3243 parser->m_nsAtts = temp; in storeAtts()
3250 parser->m_nsAtts[--j].version = version; in storeAtts()
3252 parser->m_nsAttsVersion = --version; in storeAtts()
3264 copy_salt_to_sipkey(parser, &sip_key); in storeAtts()
3268 id = (ATTRIBUTE_ID *)lookup(parser, &dtd->attributeIds, s, 0); in storeAtts()
3292 if (! poolAppendChar(&parser->m_tempPool, c)) in storeAtts()
3304 if (! poolAppendChar(&parser->m_tempPool, *s)) in storeAtts()
3316 while (parser->m_nsAtts[j].version == version) { in storeAtts()
3318 if (uriHash == parser->m_nsAtts[j].hash) { in storeAtts()
3319 const XML_Char *s1 = poolStart(&parser->m_tempPool); in storeAtts()
3320 const XML_Char *s2 = parser->m_nsAtts[j].uriName; in storeAtts()
3328 step = PROBE_STEP(uriHash, mask, parser->m_nsAttsPower); in storeAtts()
3333 if (parser->m_ns_triplets) { /* append namespace separator and prefix */ in storeAtts()
3334 parser->m_tempPool.ptr[-1] = parser->m_namespaceSeparator; in storeAtts()
3337 if (! poolAppendChar(&parser->m_tempPool, *s)) in storeAtts()
3343 s = poolStart(&parser->m_tempPool); in storeAtts()
3344 poolFinish(&parser->m_tempPool); in storeAtts()
3348 parser->m_nsAtts[j].version = version; in storeAtts()
3349 parser->m_nsAtts[j].hash = uriHash; in storeAtts()
3350 parser->m_nsAtts[j].uriName = s; in storeAtts()
3366 if (! parser->m_ns) in storeAtts()
3383 if (parser->m_ns_triplets && binding->prefix->name) { in storeAtts()
3396 uri = (XML_Char *)MALLOC(parser, (n + EXPAND_SPARE) * sizeof(XML_Char)); in storeAtts()
3401 for (p = parser->m_tagStack; p; p = p->parent) in storeAtts()
3404 FREE(parser, binding->uri); in storeAtts()
3413 *uri = parser->m_namespaceSeparator; /* replace null terminator */ in storeAtts()
3424 addBinding(XML_Parser parser, PREFIX *prefix, const ATTRIBUTE_ID *attId, in addBinding() argument
3486 if (parser->m_namespaceSeparator) in addBinding()
3488 if (parser->m_freeBindingList) { in addBinding()
3489 b = parser->m_freeBindingList; in addBinding()
3492 parser, b->uri, sizeof(XML_Char) * (len + EXPAND_SPARE)); in addBinding()
3498 parser->m_freeBindingList = b->nextTagBinding; in addBinding()
3500 b = (BINDING *)MALLOC(parser, sizeof(BINDING)); in addBinding()
3504 = (XML_Char *)MALLOC(parser, sizeof(XML_Char) * (len + EXPAND_SPARE)); in addBinding()
3506 FREE(parser, b); in addBinding()
3513 if (parser->m_namespaceSeparator) in addBinding()
3514 b->uri[len - 1] = parser->m_namespaceSeparator; in addBinding()
3519 if (*uri == XML_T('\0') && prefix == &parser->m_dtd->defaultPrefix) in addBinding()
3526 if (attId && parser->m_startNamespaceDeclHandler) in addBinding()
3527 parser->m_startNamespaceDeclHandler(parser->m_handlerArg, prefix->name, in addBinding()
3536 cdataSectionProcessor(XML_Parser parser, const char *start, const char *end, in cdataSectionProcessor() argument
3539 = doCdataSection(parser, parser->m_encoding, &start, end, endPtr, in cdataSectionProcessor()
3540 (XML_Bool)! parser->m_parsingStatus.finalBuffer); in cdataSectionProcessor()
3544 if (parser->m_parentParser) { /* we are parsing an external entity */ in cdataSectionProcessor()
3545 parser->m_processor = externalEntityContentProcessor; in cdataSectionProcessor()
3546 return externalEntityContentProcessor(parser, start, end, endPtr); in cdataSectionProcessor()
3548 parser->m_processor = contentProcessor; in cdataSectionProcessor()
3549 return contentProcessor(parser, start, end, endPtr); in cdataSectionProcessor()
3559 doCdataSection(XML_Parser parser, const ENCODING *enc, const char **startPtr, in doCdataSection() argument
3564 if (enc == parser->m_encoding) { in doCdataSection()
3565 eventPP = &parser->m_eventPtr; in doCdataSection()
3567 eventEndPP = &parser->m_eventEndPtr; in doCdataSection()
3569 eventPP = &(parser->m_openInternalEntities->internalEventPtr); in doCdataSection()
3570 eventEndPP = &(parser->m_openInternalEntities->internalEventEndPtr); in doCdataSection()
3581 if (parser->m_endCdataSectionHandler) in doCdataSection()
3582 parser->m_endCdataSectionHandler(parser->m_handlerArg); in doCdataSection()
3585 else if (0 && parser->m_characterDataHandler) in doCdataSection()
3586 parser->m_characterDataHandler(parser->m_handlerArg, parser->m_dataBuf, in doCdataSection()
3589 else if (parser->m_defaultHandler) in doCdataSection()
3590 reportDefault(parser, enc, s, next); in doCdataSection()
3593 if (parser->m_parsingStatus.parsing == XML_FINISHED) in doCdataSection()
3598 if (parser->m_characterDataHandler) { in doCdataSection()
3600 parser->m_characterDataHandler(parser->m_handlerArg, &c, 1); in doCdataSection()
3601 } else if (parser->m_defaultHandler) in doCdataSection()
3602 reportDefault(parser, enc, s, next); in doCdataSection()
3605 XML_CharacterDataHandler charDataHandler = parser->m_characterDataHandler; in doCdataSection()
3609 ICHAR *dataPtr = (ICHAR *)parser->m_dataBuf; in doCdataSection()
3611 enc, &s, next, &dataPtr, (ICHAR *)parser->m_dataBufEnd); in doCdataSection()
3613 charDataHandler(parser->m_handlerArg, parser->m_dataBuf, in doCdataSection()
3614 (int)(dataPtr - (ICHAR *)parser->m_dataBuf)); in doCdataSection()
3621 charDataHandler(parser->m_handlerArg, (XML_Char *)s, in doCdataSection()
3623 } else if (parser->m_defaultHandler) in doCdataSection()
3624 reportDefault(parser, enc, s, next); in doCdataSection()
3656 switch (parser->m_parsingStatus.parsing) { in doCdataSection()
3674 ignoreSectionProcessor(XML_Parser parser, const char *start, const char *end, in ignoreSectionProcessor() argument
3677 = doIgnoreSection(parser, parser->m_encoding, &start, end, endPtr, in ignoreSectionProcessor()
3678 (XML_Bool)! parser->m_parsingStatus.finalBuffer); in ignoreSectionProcessor()
3682 parser->m_processor = prologProcessor; in ignoreSectionProcessor()
3683 return prologProcessor(parser, start, end, endPtr); in ignoreSectionProcessor()
3692 doIgnoreSection(XML_Parser parser, const ENCODING *enc, const char **startPtr, in doIgnoreSection() argument
3699 if (enc == parser->m_encoding) { in doIgnoreSection()
3700 eventPP = &parser->m_eventPtr; in doIgnoreSection()
3702 eventEndPP = &parser->m_eventEndPtr; in doIgnoreSection()
3715 eventPP = &(parser->m_openInternalEntities->internalEventPtr); in doIgnoreSection()
3716 eventEndPP = &(parser->m_openInternalEntities->internalEventEndPtr); in doIgnoreSection()
3725 if (parser->m_defaultHandler) in doIgnoreSection()
3726 reportDefault(parser, enc, s, next); in doIgnoreSection()
3729 if (parser->m_parsingStatus.parsing == XML_FINISHED) in doIgnoreSection()
3767 initializeEncoding(XML_Parser parser) { in initializeEncoding() argument
3772 if (! parser->m_protocolEncodingName) in initializeEncoding()
3776 for (i = 0; parser->m_protocolEncodingName[i]; i++) { in initializeEncoding()
3778 || (parser->m_protocolEncodingName[i] & ~0x7f) != 0) { in initializeEncoding()
3782 encodingBuf[i] = (char)parser->m_protocolEncodingName[i]; in initializeEncoding()
3788 s = parser->m_protocolEncodingName; in initializeEncoding()
3790 if ((parser->m_ns ? XmlInitEncodingNS : XmlInitEncoding)( in initializeEncoding()
3791 &parser->m_initEncoding, &parser->m_encoding, s)) in initializeEncoding()
3793 return handleUnknownEncoding(parser, parser->m_protocolEncodingName); in initializeEncoding()
3797 processXmlDecl(XML_Parser parser, int isGeneralTextEntity, const char *s, in processXmlDecl() argument
3806 if (! (parser->m_ns ? XmlParseXmlDeclNS : XmlParseXmlDecl)( in processXmlDecl()
3807 isGeneralTextEntity, parser->m_encoding, s, next, &parser->m_eventPtr, in processXmlDecl()
3815 parser->m_dtd->standalone = XML_TRUE; in processXmlDecl()
3817 if (parser->m_paramEntityParsing in processXmlDecl()
3819 parser->m_paramEntityParsing = XML_PARAM_ENTITY_PARSING_NEVER; in processXmlDecl()
3822 if (parser->m_xmlDeclHandler) { in processXmlDecl()
3825 &parser->m_temp2Pool, parser->m_encoding, encodingName, in processXmlDecl()
3826 encodingName + XmlNameLength(parser->m_encoding, encodingName)); in processXmlDecl()
3829 poolFinish(&parser->m_temp2Pool); in processXmlDecl()
3833 = poolStoreString(&parser->m_temp2Pool, parser->m_encoding, version, in processXmlDecl()
3834 versionend - parser->m_encoding->minBytesPerChar); in processXmlDecl()
3838 parser->m_xmlDeclHandler(parser->m_handlerArg, storedversion, storedEncName, in processXmlDecl()
3840 } else if (parser->m_defaultHandler) in processXmlDecl()
3841 reportDefault(parser, parser->m_encoding, s, next); in processXmlDecl()
3842 if (parser->m_protocolEncodingName == NULL) { in processXmlDecl()
3849 if (newEncoding->minBytesPerChar != parser->m_encoding->minBytesPerChar in processXmlDecl()
3851 && newEncoding != parser->m_encoding)) { in processXmlDecl()
3852 parser->m_eventPtr = encodingName; in processXmlDecl()
3855 parser->m_encoding = newEncoding; in processXmlDecl()
3860 &parser->m_temp2Pool, parser->m_encoding, encodingName, in processXmlDecl()
3861 encodingName + XmlNameLength(parser->m_encoding, encodingName)); in processXmlDecl()
3865 result = handleUnknownEncoding(parser, storedEncName); in processXmlDecl()
3866 poolClear(&parser->m_temp2Pool); in processXmlDecl()
3868 parser->m_eventPtr = encodingName; in processXmlDecl()
3874 poolClear(&parser->m_temp2Pool); in processXmlDecl()
3880 handleUnknownEncoding(XML_Parser parser, const XML_Char *encodingName) { in handleUnknownEncoding() argument
3881 if (parser->m_unknownEncodingHandler) { in handleUnknownEncoding()
3889 if (parser->m_unknownEncodingHandler(parser->m_unknownEncodingHandlerData, in handleUnknownEncoding()
3892 parser->m_unknownEncodingMem = MALLOC(parser, XmlSizeOfUnknownEncoding()); in handleUnknownEncoding()
3893 if (! parser->m_unknownEncodingMem) { in handleUnknownEncoding()
3898 enc = (parser->m_ns ? XmlInitUnknownEncodingNS : XmlInitUnknownEncoding)( in handleUnknownEncoding()
3899 parser->m_unknownEncodingMem, info.map, info.convert, info.data); in handleUnknownEncoding()
3901 parser->m_unknownEncodingData = info.data; in handleUnknownEncoding()
3902 parser->m_unknownEncodingRelease = info.release; in handleUnknownEncoding()
3903 parser->m_encoding = enc; in handleUnknownEncoding()
3914 prologInitProcessor(XML_Parser parser, const char *s, const char *end, in prologInitProcessor() argument
3916 enum XML_Error result = initializeEncoding(parser); in prologInitProcessor()
3919 parser->m_processor = prologProcessor; in prologInitProcessor()
3920 return prologProcessor(parser, s, end, nextPtr); in prologInitProcessor()
3926 externalParEntInitProcessor(XML_Parser parser, const char *s, const char *end, in externalParEntInitProcessor() argument
3928 enum XML_Error result = initializeEncoding(parser); in externalParEntInitProcessor()
3934 parser->m_dtd->paramEntityRead = XML_TRUE; in externalParEntInitProcessor()
3936 if (parser->m_prologState.inEntityValue) { in externalParEntInitProcessor()
3937 parser->m_processor = entityValueInitProcessor; in externalParEntInitProcessor()
3938 return entityValueInitProcessor(parser, s, end, nextPtr); in externalParEntInitProcessor()
3940 parser->m_processor = externalParEntProcessor; in externalParEntInitProcessor()
3941 return externalParEntProcessor(parser, s, end, nextPtr); in externalParEntInitProcessor()
3946 entityValueInitProcessor(XML_Parser parser, const char *s, const char *end, in entityValueInitProcessor() argument
3951 parser->m_eventPtr = start; in entityValueInitProcessor()
3954 tok = XmlPrologTok(parser->m_encoding, start, end, &next); in entityValueInitProcessor()
3955 parser->m_eventEndPtr = next; in entityValueInitProcessor()
3957 if (! parser->m_parsingStatus.finalBuffer && tok != XML_TOK_INVALID) { in entityValueInitProcessor()
3973 return storeEntityValue(parser, parser->m_encoding, s, end); in entityValueInitProcessor()
3976 result = processXmlDecl(parser, 0, start, next); in entityValueInitProcessor()
3984 if (parser->m_parsingStatus.parsing == XML_FINISHED) in entityValueInitProcessor()
3988 parser->m_processor = entityValueProcessor; in entityValueInitProcessor()
3989 return entityValueProcessor(parser, next, end, nextPtr); in entityValueInitProcessor()
3999 && ! parser->m_parsingStatus.finalBuffer) { in entityValueInitProcessor()
4012 parser->m_eventPtr = start; in entityValueInitProcessor()
4017 externalParEntProcessor(XML_Parser parser, const char *s, const char *end, in externalParEntProcessor() argument
4022 tok = XmlPrologTok(parser->m_encoding, s, end, &next); in externalParEntProcessor()
4024 if (! parser->m_parsingStatus.finalBuffer && tok != XML_TOK_INVALID) { in externalParEntProcessor()
4046 tok = XmlPrologTok(parser->m_encoding, s, end, &next); in externalParEntProcessor()
4049 parser->m_processor = prologProcessor; in externalParEntProcessor()
4050 return doProlog(parser, parser->m_encoding, s, end, tok, next, nextPtr, in externalParEntProcessor()
4051 (XML_Bool)! parser->m_parsingStatus.finalBuffer, XML_TRUE); in externalParEntProcessor()
4055 entityValueProcessor(XML_Parser parser, const char *s, const char *end, in entityValueProcessor() argument
4059 const ENCODING *enc = parser->m_encoding; in entityValueProcessor()
4065 if (! parser->m_parsingStatus.finalBuffer && tok != XML_TOK_INVALID) { in entityValueProcessor()
4081 return storeEntityValue(parser, enc, s, end); in entityValueProcessor()
4090 prologProcessor(XML_Parser parser, const char *s, const char *end, in prologProcessor() argument
4093 int tok = XmlPrologTok(parser->m_encoding, s, end, &next); in prologProcessor()
4094 return doProlog(parser, parser->m_encoding, s, end, tok, next, nextPtr, in prologProcessor()
4095 (XML_Bool)! parser->m_parsingStatus.finalBuffer, XML_TRUE); in prologProcessor()
4099 doProlog(XML_Parser parser, const ENCODING *enc, const char *s, const char *end, in doProlog() argument
4129 DTD *const dtd = parser->m_dtd; in doProlog()
4135 if (enc == parser->m_encoding) { in doProlog()
4136 eventPP = &parser->m_eventPtr; in doProlog()
4137 eventEndPP = &parser->m_eventEndPtr; in doProlog()
4139 eventPP = &(parser->m_openInternalEntities->internalEventPtr); in doProlog()
4140 eventEndPP = &(parser->m_openInternalEntities->internalEventEndPtr); in doProlog()
4167 if (enc != parser->m_encoding in doProlog()
4168 && ! parser->m_openInternalEntities->betweenDecl) { in doProlog()
4176 if (parser->m_isParamEntity || enc != parser->m_encoding) { in doProlog()
4177 if (XmlTokenRole(&parser->m_prologState, XML_TOK_NONE, end, end, enc) in doProlog()
4191 role = XmlTokenRole(&parser->m_prologState, tok, s, next, enc); in doProlog()
4194 enum XML_Error result = processXmlDecl(parser, 0, s, next); in doProlog()
4197 enc = parser->m_encoding; in doProlog()
4201 if (parser->m_startDoctypeDeclHandler) { in doProlog()
4202 parser->m_doctypeName in doProlog()
4203 = poolStoreString(&parser->m_tempPool, enc, s, next); in doProlog()
4204 if (! parser->m_doctypeName) in doProlog()
4206 poolFinish(&parser->m_tempPool); in doProlog()
4207 parser->m_doctypePubid = NULL; in doProlog()
4210 parser->m_doctypeSysid = NULL; /* always initialize to NULL */ in doProlog()
4213 if (parser->m_startDoctypeDeclHandler) { in doProlog()
4214 parser->m_startDoctypeDeclHandler( in doProlog()
4215 parser->m_handlerArg, parser->m_doctypeName, parser->m_doctypeSysid, in doProlog()
4216 parser->m_doctypePubid, 1); in doProlog()
4217 parser->m_doctypeName = NULL; in doProlog()
4218 poolClear(&parser->m_tempPool); in doProlog()
4224 enum XML_Error result = processXmlDecl(parser, 1, s, next); in doProlog()
4227 enc = parser->m_encoding; in doProlog()
4233 parser->m_useForeignDTD = XML_FALSE; in doProlog()
4234 parser->m_declEntity = (ENTITY *)lookup( in doProlog()
4235 parser, &dtd->paramEntities, externalSubsetName, sizeof(ENTITY)); in doProlog()
4236 if (! parser->m_declEntity) in doProlog()
4240 if (parser->m_startDoctypeDeclHandler) { in doProlog()
4244 pubId = poolStoreString(&parser->m_tempPool, enc, in doProlog()
4250 poolFinish(&parser->m_tempPool); in doProlog()
4251 parser->m_doctypePubid = pubId; in doProlog()
4260 if (dtd->keepProcessing && parser->m_declEntity) { in doProlog()
4267 parser->m_declEntity->publicId = tem; in doProlog()
4272 if (parser->m_entityDeclHandler && role == XML_ROLE_ENTITY_PUBLIC_ID) in doProlog()
4282 if (parser->m_doctypeName) { in doProlog()
4283 parser->m_startDoctypeDeclHandler( in doProlog()
4284 parser->m_handlerArg, parser->m_doctypeName, parser->m_doctypeSysid, in doProlog()
4285 parser->m_doctypePubid, 0); in doProlog()
4286 poolClear(&parser->m_tempPool); in doProlog()
4294 if (parser->m_doctypeSysid || parser->m_useForeignDTD) { in doProlog()
4297 if (parser->m_paramEntityParsing in doProlog()
4298 && parser->m_externalEntityRefHandler) { in doProlog()
4299 ENTITY *entity = (ENTITY *)lookup(parser, &dtd->paramEntities, in doProlog()
4309 if (parser->m_useForeignDTD) in doProlog()
4310 entity->base = parser->m_curBase; in doProlog()
4312 if (! parser->m_externalEntityRefHandler( in doProlog()
4313 parser->m_externalEntityRefHandlerArg, 0, entity->base, in doProlog()
4317 if (! dtd->standalone && parser->m_notStandaloneHandler in doProlog()
4318 && ! parser->m_notStandaloneHandler(parser->m_handlerArg)) in doProlog()
4324 else if (! parser->m_doctypeSysid) in doProlog()
4328 parser->m_useForeignDTD = XML_FALSE; in doProlog()
4331 if (parser->m_endDoctypeDeclHandler) { in doProlog()
4332 parser->m_endDoctypeDeclHandler(parser->m_handlerArg); in doProlog()
4341 if (parser->m_useForeignDTD) { in doProlog()
4344 if (parser->m_paramEntityParsing in doProlog()
4345 && parser->m_externalEntityRefHandler) { in doProlog()
4346 ENTITY *entity = (ENTITY *)lookup(parser, &dtd->paramEntities, in doProlog()
4350 entity->base = parser->m_curBase; in doProlog()
4352 if (! parser->m_externalEntityRefHandler( in doProlog()
4353 parser->m_externalEntityRefHandlerArg, 0, entity->base, in doProlog()
4357 if (! dtd->standalone && parser->m_notStandaloneHandler in doProlog()
4358 && ! parser->m_notStandaloneHandler(parser->m_handlerArg)) in doProlog()
4370 parser->m_processor = contentProcessor; in doProlog()
4371 return contentProcessor(parser, s, end, nextPtr); in doProlog()
4373 parser->m_declElementType = getElementType(parser, enc, s, next); in doProlog()
4374 if (! parser->m_declElementType) in doProlog()
4378 parser->m_declAttributeId = getAttributeId(parser, enc, s, next); in doProlog()
4379 if (! parser->m_declAttributeId) in doProlog()
4381 parser->m_declAttributeIsCdata = XML_FALSE; in doProlog()
4382 parser->m_declAttributeType = NULL; in doProlog()
4383 parser->m_declAttributeIsId = XML_FALSE; in doProlog()
4386 parser->m_declAttributeIsCdata = XML_TRUE; in doProlog()
4387 parser->m_declAttributeType = atypeCDATA; in doProlog()
4390 parser->m_declAttributeIsId = XML_TRUE; in doProlog()
4391 parser->m_declAttributeType = atypeID; in doProlog()
4394 parser->m_declAttributeType = atypeIDREF; in doProlog()
4397 parser->m_declAttributeType = atypeIDREFS; in doProlog()
4400 parser->m_declAttributeType = atypeENTITY; in doProlog()
4403 parser->m_declAttributeType = atypeENTITIES; in doProlog()
4406 parser->m_declAttributeType = atypeNMTOKEN; in doProlog()
4409 parser->m_declAttributeType = atypeNMTOKENS; in doProlog()
4411 if (dtd->keepProcessing && parser->m_attlistDeclHandler) in doProlog()
4416 if (dtd->keepProcessing && parser->m_attlistDeclHandler) { in doProlog()
4418 if (parser->m_declAttributeType) { in doProlog()
4424 if (! poolAppendString(&parser->m_tempPool, prefix)) in doProlog()
4426 if (! poolAppend(&parser->m_tempPool, enc, s, next)) in doProlog()
4428 parser->m_declAttributeType = parser->m_tempPool.start; in doProlog()
4435 if (! defineAttribute(parser->m_declElementType, in doProlog()
4436 parser->m_declAttributeId, in doProlog()
4437 parser->m_declAttributeIsCdata, in doProlog()
4438 parser->m_declAttributeIsId, 0, parser)) in doProlog()
4440 if (parser->m_attlistDeclHandler && parser->m_declAttributeType) { in doProlog()
4441 if (*parser->m_declAttributeType == XML_T(ASCII_LPAREN) in doProlog()
4442 || (*parser->m_declAttributeType == XML_T(ASCII_N) in doProlog()
4443 && parser->m_declAttributeType[1] == XML_T(ASCII_O))) { in doProlog()
4445 if (! poolAppendChar(&parser->m_tempPool, XML_T(ASCII_RPAREN)) in doProlog()
4446 || ! poolAppendChar(&parser->m_tempPool, XML_T('\0'))) in doProlog()
4448 parser->m_declAttributeType = parser->m_tempPool.start; in doProlog()
4449 poolFinish(&parser->m_tempPool); in doProlog()
4452 parser->m_attlistDeclHandler( in doProlog()
4453 parser->m_handlerArg, parser->m_declElementType->name, in doProlog()
4454 parser->m_declAttributeId->name, parser->m_declAttributeType, 0, in doProlog()
4456 poolClear(&parser->m_tempPool); in doProlog()
4466 parser, enc, parser->m_declAttributeIsCdata, in doProlog()
4474 parser->m_declElementType, parser->m_declAttributeId, in doProlog()
4475 parser->m_declAttributeIsCdata, XML_FALSE, attVal, parser)) in doProlog()
4477 if (parser->m_attlistDeclHandler && parser->m_declAttributeType) { in doProlog()
4478 if (*parser->m_declAttributeType == XML_T(ASCII_LPAREN) in doProlog()
4479 || (*parser->m_declAttributeType == XML_T(ASCII_N) in doProlog()
4480 && parser->m_declAttributeType[1] == XML_T(ASCII_O))) { in doProlog()
4482 if (! poolAppendChar(&parser->m_tempPool, XML_T(ASCII_RPAREN)) in doProlog()
4483 || ! poolAppendChar(&parser->m_tempPool, XML_T('\0'))) in doProlog()
4485 parser->m_declAttributeType = parser->m_tempPool.start; in doProlog()
4486 poolFinish(&parser->m_tempPool); in doProlog()
4489 parser->m_attlistDeclHandler( in doProlog()
4490 parser->m_handlerArg, parser->m_declElementType->name, in doProlog()
4491 parser->m_declAttributeId->name, parser->m_declAttributeType, in doProlog()
4493 poolClear(&parser->m_tempPool); in doProlog()
4501 parser, enc, s + enc->minBytesPerChar, next - enc->minBytesPerChar); in doProlog()
4502 if (parser->m_declEntity) { in doProlog()
4503 parser->m_declEntity->textPtr = poolStart(&dtd->entityValuePool); in doProlog()
4504 parser->m_declEntity->textLen in doProlog()
4507 if (parser->m_entityDeclHandler) { in doProlog()
4509 parser->m_entityDeclHandler( in doProlog()
4510 parser->m_handlerArg, parser->m_declEntity->name, in doProlog()
4511 parser->m_declEntity->is_param, parser->m_declEntity->textPtr, in doProlog()
4512 parser->m_declEntity->textLen, parser->m_curBase, 0, 0, 0); in doProlog()
4523 parser->m_useForeignDTD = XML_FALSE; in doProlog()
4526 if (parser->m_startDoctypeDeclHandler) { in doProlog()
4527 parser->m_doctypeSysid = poolStoreString(&parser->m_tempPool, enc, in doProlog()
4530 if (parser->m_doctypeSysid == NULL) in doProlog()
4532 poolFinish(&parser->m_tempPool); in doProlog()
4539 parser->m_doctypeSysid = externalSubsetName; in doProlog()
4543 && ! parser->m_paramEntityParsing in doProlog()
4545 && parser->m_notStandaloneHandler in doProlog()
4546 && ! parser->m_notStandaloneHandler(parser->m_handlerArg)) in doProlog()
4551 if (! parser->m_declEntity) { in doProlog()
4552 parser->m_declEntity = (ENTITY *)lookup( in doProlog()
4553 parser, &dtd->paramEntities, externalSubsetName, sizeof(ENTITY)); in doProlog()
4554 if (! parser->m_declEntity) in doProlog()
4556 parser->m_declEntity->publicId = NULL; in doProlog()
4561 if (dtd->keepProcessing && parser->m_declEntity) { in doProlog()
4562 parser->m_declEntity->systemId in doProlog()
4565 if (! parser->m_declEntity->systemId) in doProlog()
4567 parser->m_declEntity->base = parser->m_curBase; in doProlog()
4572 if (parser->m_entityDeclHandler && role == XML_ROLE_ENTITY_SYSTEM_ID) in doProlog()
4577 if (dtd->keepProcessing && parser->m_declEntity in doProlog()
4578 && parser->m_entityDeclHandler) { in doProlog()
4580 parser->m_entityDeclHandler( in doProlog()
4581 parser->m_handlerArg, parser->m_declEntity->name, in doProlog()
4582 parser->m_declEntity->is_param, 0, 0, parser->m_declEntity->base, in doProlog()
4583 parser->m_declEntity->systemId, parser->m_declEntity->publicId, 0); in doProlog()
4588 if (dtd->keepProcessing && parser->m_declEntity) { in doProlog()
4589 parser->m_declEntity->notation in doProlog()
4591 if (! parser->m_declEntity->notation) in doProlog()
4594 if (parser->m_unparsedEntityDeclHandler) { in doProlog()
4596 parser->m_unparsedEntityDeclHandler( in doProlog()
4597 parser->m_handlerArg, parser->m_declEntity->name, in doProlog()
4598 parser->m_declEntity->base, parser->m_declEntity->systemId, in doProlog()
4599 parser->m_declEntity->publicId, parser->m_declEntity->notation); in doProlog()
4601 } else if (parser->m_entityDeclHandler) { in doProlog()
4603 parser->m_entityDeclHandler( in doProlog()
4604 parser->m_handlerArg, parser->m_declEntity->name, 0, 0, 0, in doProlog()
4605 parser->m_declEntity->base, parser->m_declEntity->systemId, in doProlog()
4606 parser->m_declEntity->publicId, parser->m_declEntity->notation); in doProlog()
4613 parser->m_declEntity = NULL; in doProlog()
4620 parser->m_declEntity = (ENTITY *)lookup(parser, &dtd->generalEntities, in doProlog()
4622 if (! parser->m_declEntity) in doProlog()
4624 if (parser->m_declEntity->name != name) { in doProlog()
4626 parser->m_declEntity = NULL; in doProlog()
4629 parser->m_declEntity->publicId = NULL; in doProlog()
4630 parser->m_declEntity->is_param = XML_FALSE; in doProlog()
4634 parser->m_declEntity->is_internal in doProlog()
4635 = ! (parser->m_parentParser || parser->m_openInternalEntities); in doProlog()
4636 if (parser->m_entityDeclHandler) in doProlog()
4641 parser->m_declEntity = NULL; in doProlog()
4650 parser->m_declEntity = (ENTITY *)lookup(parser, &dtd->paramEntities, in doProlog()
4652 if (! parser->m_declEntity) in doProlog()
4654 if (parser->m_declEntity->name != name) { in doProlog()
4656 parser->m_declEntity = NULL; in doProlog()
4659 parser->m_declEntity->publicId = NULL; in doProlog()
4660 parser->m_declEntity->is_param = XML_TRUE; in doProlog()
4664 parser->m_declEntity->is_internal in doProlog()
4665 = ! (parser->m_parentParser || parser->m_openInternalEntities); in doProlog()
4666 if (parser->m_entityDeclHandler) in doProlog()
4671 parser->m_declEntity = NULL; in doProlog()
4674 parser->m_declEntity = NULL; in doProlog()
4678 parser->m_declNotationPublicId = NULL; in doProlog()
4679 parser->m_declNotationName = NULL; in doProlog()
4680 if (parser->m_notationDeclHandler) { in doProlog()
4681 parser->m_declNotationName in doProlog()
4682 = poolStoreString(&parser->m_tempPool, enc, s, next); in doProlog()
4683 if (! parser->m_declNotationName) in doProlog()
4685 poolFinish(&parser->m_tempPool); in doProlog()
4692 if (parser in doProlog()
4694 XML_Char *tem = poolStoreString(&parser->m_tempPool, enc, in doProlog()
4700 parser->m_declNotationPublicId = tem; in doProlog()
4701 poolFinish(&parser->m_tempPool); in doProlog()
4706 if (parser->m_declNotationName && parser->m_notationDeclHandler) { in doProlog()
4707 const XML_Char *systemId = poolStoreString(&parser->m_tempPool, enc, in doProlog()
4713 parser->m_notationDeclHandler( in doProlog()
4714 parser->m_handlerArg, parser->m_declNotationName, parser->m_curBase, in doProlog()
4715 systemId, parser->m_declNotationPublicId); in doProlog()
4718 poolClear(&parser->m_tempPool); in doProlog()
4721 if (parser->m_declNotationPublicId && parser->m_notationDeclHandler) { in doProlog()
4723 parser->m_notationDeclHandler( in doProlog()
4724 parser->m_handlerArg, parser->m_declNotationName, parser->m_curBase, in doProlog()
4725 0, parser->m_declNotationPublicId); in doProlog()
4728 poolClear(&parser->m_tempPool); in doProlog()
4744 if (parser->m_defaultHandler) in doProlog()
4745 reportDefault(parser, enc, s, next); in doProlog()
4747 result = doIgnoreSection(parser, enc, &next, end, nextPtr, haveMore); in doProlog()
4751 parser->m_processor = ignoreSectionProcessor; in doProlog()
4757 if (parser->m_prologState.level >= parser->m_groupSize) { in doProlog()
4758 if (parser->m_groupSize) { in doProlog()
4761 parser, parser->m_groupConnector, parser->m_groupSize *= 2); in doProlog()
4763 parser->m_groupSize /= 2; in doProlog()
4766 parser->m_groupConnector = new_connector; in doProlog()
4771 parser, dtd->scaffIndex, parser->m_groupSize * sizeof(int)); in doProlog()
4777 parser->m_groupConnector in doProlog()
4778 = (char *)MALLOC(parser, parser->m_groupSize = 32); in doProlog()
4779 if (! parser->m_groupConnector) { in doProlog()
4780 parser->m_groupSize = 0; in doProlog()
4785 parser->m_groupConnector[parser->m_prologState.level] = 0; in doProlog()
4787 int myindex = nextScaffoldPart(parser); in doProlog()
4794 if (parser->m_elementDeclHandler) in doProlog()
4799 if (parser->m_groupConnector[parser->m_prologState.level] == ASCII_PIPE) in doProlog()
4801 parser->m_groupConnector[parser->m_prologState.level] = ASCII_COMMA; in doProlog()
4802 if (dtd->in_eldecl && parser->m_elementDeclHandler) in doProlog()
4806 if (parser->m_groupConnector[parser->m_prologState.level] == ASCII_COMMA) in doProlog()
4809 && ! parser->m_groupConnector[parser->m_prologState.level] in doProlog()
4814 if (parser->m_elementDeclHandler) in doProlog()
4817 parser->m_groupConnector[parser->m_prologState.level] = ASCII_PIPE; in doProlog()
4823 if (! parser->m_paramEntityParsing) in doProlog()
4832 entity = (ENTITY *)lookup(parser, &dtd->paramEntities, name, 0); in doProlog()
4838 if (parser->m_prologState.documentEntity in doProlog()
4839 && (dtd->standalone ? ! parser->m_openInternalEntities in doProlog()
4870 && parser->m_skippedEntityHandler) { in doProlog()
4871 parser->m_skippedEntityHandler(parser->m_handlerArg, name, 1); in doProlog()
4882 result = processInternalEntity(parser, entity, betweenDecl); in doProlog()
4888 if (parser->m_externalEntityRefHandler) { in doProlog()
4891 if (! parser->m_externalEntityRefHandler( in doProlog()
4892 parser->m_externalEntityRefHandlerArg, 0, entity->base, in doProlog()
4909 if (! dtd->standalone && parser->m_notStandaloneHandler in doProlog()
4910 && ! parser->m_notStandaloneHandler(parser->m_handlerArg)) in doProlog()
4917 if (parser->m_elementDeclHandler) { in doProlog()
4918 parser->m_declElementType = getElementType(parser, enc, s, next); in doProlog()
4919 if (! parser->m_declElementType) in doProlog()
4931 if (parser->m_elementDeclHandler) { in doProlog()
4933 = (XML_Content *)MALLOC(parser, sizeof(XML_Content)); in doProlog()
4943 parser->m_elementDeclHandler( in doProlog()
4944 parser->m_handlerArg, parser->m_declElementType->name, content); in doProlog()
4955 if (parser->m_elementDeclHandler) in doProlog()
4978 int myindex = nextScaffoldPart(parser); in doProlog()
4983 el = getElementType(parser, enc, s, nxt); in doProlog()
4992 if (parser->m_elementDeclHandler) in doProlog()
5010 if (parser->m_elementDeclHandler) in doProlog()
5016 XML_Content *model = build_model(parser); in doProlog()
5020 parser->m_elementDeclHandler( in doProlog()
5021 parser->m_handlerArg, parser->m_declElementType->name, model); in doProlog()
5031 if (! reportProcessingInstruction(parser, enc, s, next)) in doProlog()
5036 if (! reportComment(parser, enc, s, next)) in doProlog()
5048 if (parser->m_startDoctypeDeclHandler) in doProlog()
5052 if (dtd->keepProcessing && parser->m_entityDeclHandler) in doProlog()
5056 if (parser->m_notationDeclHandler) in doProlog()
5060 if (dtd->keepProcessing && parser->m_attlistDeclHandler) in doProlog()
5064 if (parser->m_elementDeclHandler) in doProlog()
5069 if (handleDefault && parser->m_defaultHandler) in doProlog()
5070 reportDefault(parser, enc, s, next); in doProlog()
5072 switch (parser->m_parsingStatus.parsing) { in doProlog()
5087 epilogProcessor(XML_Parser parser, const char *s, const char *end, in epilogProcessor() argument
5089 parser->m_processor = epilogProcessor; in epilogProcessor()
5090 parser->m_eventPtr = s; in epilogProcessor()
5093 int tok = XmlPrologTok(parser->m_encoding, s, end, &next); in epilogProcessor()
5094 parser->m_eventEndPtr = next; in epilogProcessor()
5098 if (parser->m_defaultHandler) { in epilogProcessor()
5099 reportDefault(parser, parser->m_encoding, s, next); in epilogProcessor()
5100 if (parser->m_parsingStatus.parsing == XML_FINISHED) in epilogProcessor()
5109 if (parser->m_defaultHandler) in epilogProcessor()
5110 reportDefault(parser, parser->m_encoding, s, next); in epilogProcessor()
5113 if (! reportProcessingInstruction(parser, parser->m_encoding, s, next)) in epilogProcessor()
5117 if (! reportComment(parser, parser->m_encoding, s, next)) in epilogProcessor()
5121 parser->m_eventPtr = next; in epilogProcessor()
5124 if (! parser->m_parsingStatus.finalBuffer) { in epilogProcessor()
5130 if (! parser->m_parsingStatus.finalBuffer) { in epilogProcessor()
5138 parser->m_eventPtr = s = next; in epilogProcessor()
5139 switch (parser->m_parsingStatus.parsing) { in epilogProcessor()
5151 processInternalEntity(XML_Parser parser, ENTITY *entity, XML_Bool betweenDecl) { in processInternalEntity() argument
5157 if (parser->m_freeInternalEntities) { in processInternalEntity()
5158 openEntity = parser->m_freeInternalEntities; in processInternalEntity()
5159 parser->m_freeInternalEntities = openEntity->next; in processInternalEntity()
5162 = (OPEN_INTERNAL_ENTITY *)MALLOC(parser, sizeof(OPEN_INTERNAL_ENTITY)); in processInternalEntity()
5168 openEntity->next = parser->m_openInternalEntities; in processInternalEntity()
5169 parser->m_openInternalEntities = openEntity; in processInternalEntity()
5171 openEntity->startTagLevel = parser->m_tagLevel; in processInternalEntity()
5183 = XmlPrologTok(parser->m_internalEncoding, textStart, textEnd, &next); in processInternalEntity()
5184 result = doProlog(parser, parser->m_internalEncoding, textStart, textEnd, in processInternalEntity()
5188 result = doContent(parser, parser->m_tagLevel, parser->m_internalEncoding, in processInternalEntity()
5192 if (textEnd != next && parser->m_parsingStatus.parsing == XML_SUSPENDED) { in processInternalEntity()
5194 parser->m_processor = internalEntityProcessor; in processInternalEntity()
5197 parser->m_openInternalEntities = openEntity->next; in processInternalEntity()
5199 openEntity->next = parser->m_freeInternalEntities; in processInternalEntity()
5200 parser->m_freeInternalEntities = openEntity; in processInternalEntity()
5207 internalEntityProcessor(XML_Parser parser, const char *s, const char *end, in internalEntityProcessor() argument
5213 OPEN_INTERNAL_ENTITY *openEntity = parser->m_openInternalEntities; in internalEntityProcessor()
5226 = XmlPrologTok(parser->m_internalEncoding, textStart, textEnd, &next); in internalEntityProcessor()
5227 result = doProlog(parser, parser->m_internalEncoding, textStart, textEnd, in internalEntityProcessor()
5231 result = doContent(parser, openEntity->startTagLevel, in internalEntityProcessor()
5232 parser->m_internalEncoding, textStart, textEnd, &next, in internalEntityProcessor()
5238 && parser->m_parsingStatus.parsing == XML_SUSPENDED) { in internalEntityProcessor()
5243 parser->m_openInternalEntities = openEntity->next; in internalEntityProcessor()
5245 openEntity->next = parser->m_freeInternalEntities; in internalEntityProcessor()
5246 parser->m_freeInternalEntities = openEntity; in internalEntityProcessor()
5252 parser->m_processor = prologProcessor; in internalEntityProcessor()
5253 tok = XmlPrologTok(parser->m_encoding, s, end, &next); in internalEntityProcessor()
5254 return doProlog(parser, parser->m_encoding, s, end, tok, next, nextPtr, in internalEntityProcessor()
5255 (XML_Bool)! parser->m_parsingStatus.finalBuffer, XML_TRUE); in internalEntityProcessor()
5259 parser->m_processor = contentProcessor; in internalEntityProcessor()
5261 return doContent(parser, parser->m_parentParser ? 1 : 0, parser->m_encoding, in internalEntityProcessor()
5263 (XML_Bool)! parser->m_parsingStatus.finalBuffer); in internalEntityProcessor()
5268 errorProcessor(XML_Parser parser, const char *s, const char *end, in errorProcessor() argument
5273 return parser->m_errorCode; in errorProcessor()
5277 storeAttributeValue(XML_Parser parser, const ENCODING *enc, XML_Bool isCdata, in storeAttributeValue() argument
5280 = appendAttributeValue(parser, enc, isCdata, ptr, end, pool); in storeAttributeValue()
5291 appendAttributeValue(XML_Parser parser, const ENCODING *enc, XML_Bool isCdata, in appendAttributeValue() argument
5293 DTD *const dtd = parser->m_dtd; /* save one level of indirection */ in appendAttributeValue()
5301 if (enc == parser->m_encoding) in appendAttributeValue()
5302 parser->m_eventPtr = next; in appendAttributeValue()
5305 if (enc == parser->m_encoding) in appendAttributeValue()
5306 parser->m_eventPtr = ptr; in appendAttributeValue()
5313 if (enc == parser->m_encoding) in appendAttributeValue()
5314 parser->m_eventPtr = ptr; in appendAttributeValue()
5360 name = poolStoreString(&parser->m_temp2Pool, enc, in appendAttributeValue()
5365 entity = (ENTITY *)lookup(parser, &dtd->generalEntities, name, 0); in appendAttributeValue()
5366 poolDiscard(&parser->m_temp2Pool); in appendAttributeValue()
5373 parser->m_prologState.documentEntity && in appendAttributeValue()
5375 (dtd->standalone ? ! parser->m_openInternalEntities in appendAttributeValue()
5398 if (enc == parser->m_encoding) { in appendAttributeValue()
5416 parser->m_eventPtr = ptr; /* LCOV_EXCL_LINE */ in appendAttributeValue()
5421 if (enc == parser->m_encoding) in appendAttributeValue()
5422 parser->m_eventPtr = ptr; in appendAttributeValue()
5426 if (enc == parser->m_encoding) in appendAttributeValue()
5427 parser->m_eventPtr = ptr; in appendAttributeValue()
5433 result = appendAttributeValue(parser, parser->m_internalEncoding, in appendAttributeValue()
5453 if (enc == parser->m_encoding) in appendAttributeValue()
5454 parser->m_eventPtr = ptr; in appendAttributeValue()
5464 storeEntityValue(XML_Parser parser, const ENCODING *enc, in storeEntityValue() argument
5466 DTD *const dtd = parser->m_dtd; /* save one level of indirection */ in storeEntityValue()
5470 int oldInEntityValue = parser->m_prologState.inEntityValue; in storeEntityValue()
5471 parser->m_prologState.inEntityValue = 1; in storeEntityValue()
5487 if (parser->m_isParamEntity || enc != parser->m_encoding) { in storeEntityValue()
5490 name = poolStoreString(&parser->m_tempPool, enc, in storeEntityValue()
5497 entity = (ENTITY *)lookup(parser, &dtd->paramEntities, name, 0); in storeEntityValue()
5498 poolDiscard(&parser->m_tempPool); in storeEntityValue()
5510 if (enc == parser->m_encoding) in storeEntityValue()
5511 parser->m_eventPtr = entityTextPtr; in storeEntityValue()
5516 if (parser->m_externalEntityRefHandler) { in storeEntityValue()
5519 if (! parser->m_externalEntityRefHandler( in storeEntityValue()
5520 parser->m_externalEntityRefHandlerArg, 0, entity->base, in storeEntityValue()
5534 parser, parser->m_internalEncoding, (char *)entity->textPtr, in storeEntityValue()
5545 parser->m_eventPtr = entityTextPtr; in storeEntityValue()
5573 if (enc == parser->m_encoding) in storeEntityValue()
5574 parser->m_eventPtr = entityTextPtr; in storeEntityValue()
5597 if (enc == parser->m_encoding) in storeEntityValue()
5598 parser->m_eventPtr = entityTextPtr; in storeEntityValue()
5602 if (enc == parser->m_encoding) in storeEntityValue()
5603 parser->m_eventPtr = next; in storeEntityValue()
5614 if (enc == parser->m_encoding) in storeEntityValue()
5615 parser->m_eventPtr = entityTextPtr; in storeEntityValue()
5624 parser->m_prologState.inEntityValue = oldInEntityValue; in storeEntityValue()
5651 reportProcessingInstruction(XML_Parser parser, const ENCODING *enc, in reportProcessingInstruction() argument
5656 if (! parser->m_processingInstructionHandler) { in reportProcessingInstruction()
5657 if (parser->m_defaultHandler) in reportProcessingInstruction()
5658 reportDefault(parser, enc, start, end); in reportProcessingInstruction()
5663 target = poolStoreString(&parser->m_tempPool, enc, start, tem); in reportProcessingInstruction()
5666 poolFinish(&parser->m_tempPool); in reportProcessingInstruction()
5667 data = poolStoreString(&parser->m_tempPool, enc, XmlSkipS(enc, tem), in reportProcessingInstruction()
5672 parser->m_processingInstructionHandler(parser->m_handlerArg, target, data); in reportProcessingInstruction()
5673 poolClear(&parser->m_tempPool); in reportProcessingInstruction()
5678 reportComment(XML_Parser parser, const ENCODING *enc, const char *start, in reportComment() argument
5681 if (! parser->m_commentHandler) { in reportComment()
5682 if (parser->m_defaultHandler) in reportComment()
5683 reportDefault(parser, enc, start, end); in reportComment()
5686 data = poolStoreString(&parser->m_tempPool, enc, in reportComment()
5692 parser->m_commentHandler(parser->m_handlerArg, data); in reportComment()
5693 poolClear(&parser->m_tempPool); in reportComment()
5698 reportDefault(XML_Parser parser, const ENCODING *enc, const char *s, in reportDefault() argument
5704 if (enc == parser->m_encoding) { in reportDefault()
5705 eventPP = &parser->m_eventPtr; in reportDefault()
5706 eventEndPP = &parser->m_eventEndPtr; in reportDefault()
5724 eventPP = &(parser->m_openInternalEntities->internalEventPtr); in reportDefault()
5725 eventEndPP = &(parser->m_openInternalEntities->internalEventEndPtr); in reportDefault()
5729 ICHAR *dataPtr = (ICHAR *)parser->m_dataBuf; in reportDefault()
5731 = XmlConvert(enc, &s, end, &dataPtr, (ICHAR *)parser->m_dataBufEnd); in reportDefault()
5733 parser->m_defaultHandler(parser->m_handlerArg, parser->m_dataBuf, in reportDefault()
5734 (int)(dataPtr - (ICHAR *)parser->m_dataBuf)); in reportDefault()
5739 parser->m_defaultHandler(parser->m_handlerArg, (XML_Char *)s, in reportDefault()
5745 XML_Bool isId, const XML_Char *value, XML_Parser parser) { in defineAttribute() argument
5761 parser, type->allocDefaultAtts * sizeof(DEFAULT_ATTRIBUTE)); in defineAttribute()
5769 temp = (DEFAULT_ATTRIBUTE *)REALLOC(parser, type->defaultAtts, in defineAttribute()
5788 setElementTypePrefix(XML_Parser parser, ELEMENT_TYPE *elementType) { in setElementTypePrefix() argument
5789 DTD *const dtd = parser->m_dtd; /* save one level of indirection */ in setElementTypePrefix()
5801 prefix = (PREFIX *)lookup(parser, &dtd->prefixes, poolStart(&dtd->pool), in setElementTypePrefix()
5817 getAttributeId(XML_Parser parser, const ENCODING *enc, const char *start, in getAttributeId() argument
5819 DTD *const dtd = parser->m_dtd; /* save one level of indirection */ in getAttributeId()
5829 id = (ATTRIBUTE_ID *)lookup(parser, &dtd->attributeIds, name, in getAttributeId()
5837 if (! parser->m_ns) in getAttributeId()
5846 id->prefix = (PREFIX *)lookup(parser, &dtd->prefixes, name + 6, in getAttributeId()
5861 id->prefix = (PREFIX *)lookup(parser, &dtd->prefixes, in getAttributeId()
5880 getContext(XML_Parser parser) { in getContext() argument
5881 DTD *const dtd = parser->m_dtd; /* save one level of indirection */ in getContext()
5888 if (! poolAppendChar(&parser->m_tempPool, XML_T(ASCII_EQUALS))) in getContext()
5891 if (parser->m_namespaceSeparator) in getContext()
5894 if (! poolAppendChar(&parser->m_tempPool, in getContext()
5938 if (needSep && ! poolAppendChar(&parser->m_tempPool, CONTEXT_SEP)) in getContext()
5941 if (! poolAppendChar(&parser->m_tempPool, *s)) in getContext()
5943 if (! poolAppendChar(&parser->m_tempPool, XML_T(ASCII_EQUALS))) in getContext()
5946 if (parser->m_namespaceSeparator) in getContext()
5949 if (! poolAppendChar(&parser->m_tempPool, prefix->binding->uri[i])) in getContext()
5962 if (needSep && ! poolAppendChar(&parser->m_tempPool, CONTEXT_SEP)) in getContext()
5965 if (! poolAppendChar(&parser->m_tempPool, *s)) in getContext()
5970 if (! poolAppendChar(&parser->m_tempPool, XML_T('\0'))) in getContext()
5972 return parser->m_tempPool.start; in getContext()
5976 setContext(XML_Parser parser, const XML_Char *context) { in setContext() argument
5977 DTD *const dtd = parser->m_dtd; /* save one level of indirection */ in setContext()
5983 if (! poolAppendChar(&parser->m_tempPool, XML_T('\0'))) in setContext()
5985 e = (ENTITY *)lookup(parser, &dtd->generalEntities, in setContext()
5986 poolStart(&parser->m_tempPool), 0); in setContext()
5992 poolDiscard(&parser->m_tempPool); in setContext()
5995 if (poolLength(&parser->m_tempPool) == 0) in setContext()
5998 if (! poolAppendChar(&parser->m_tempPool, XML_T('\0'))) in setContext()
6001 = (PREFIX *)lookup(parser, &dtd->prefixes, in setContext()
6002 poolStart(&parser->m_tempPool), sizeof(PREFIX)); in setContext()
6005 if (prefix->name == poolStart(&parser->m_tempPool)) { in setContext()
6010 poolDiscard(&parser->m_tempPool); in setContext()
6014 if (! poolAppendChar(&parser->m_tempPool, *context)) in setContext()
6016 if (! poolAppendChar(&parser->m_tempPool, XML_T('\0'))) in setContext()
6018 if (addBinding(parser, prefix, NULL, poolStart(&parser->m_tempPool), in setContext()
6019 &parser->m_inheritedBindings) in setContext()
6022 poolDiscard(&parser->m_tempPool); in setContext()
6027 if (! poolAppendChar(&parser->m_tempPool, *s)) in setContext()
6367 copy_salt_to_sipkey(XML_Parser parser, struct sipkey *key) { in copy_salt_to_sipkey() argument
6369 key->k[1] = get_hash_secret_salt(parser); in copy_salt_to_sipkey()
6373 hash(XML_Parser parser, KEY s) { in hash() argument
6377 copy_salt_to_sipkey(parser, &key); in hash()
6384 lookup(XML_Parser parser, HASH_TABLE *table, KEY name, size_t createSize) { in lookup() argument
6400 i = hash(parser, name) & ((unsigned long)table->size - 1); in lookup()
6402 unsigned long h = hash(parser, name); in lookup()
6428 unsigned long newHash = hash(parser, table->v[i]->name); in lookup()
6755 nextScaffoldPart(XML_Parser parser) { in nextScaffoldPart() argument
6756 DTD *const dtd = parser->m_dtd; /* save one level of indirection */ in nextScaffoldPart()
6761 dtd->scaffIndex = (int *)MALLOC(parser, parser->m_groupSize * sizeof(int)); in nextScaffoldPart()
6771 parser, dtd->scaffold, dtd->scaffSize * 2 * sizeof(CONTENT_SCAFFOLD)); in nextScaffoldPart()
6776 temp = (CONTENT_SCAFFOLD *)MALLOC(parser, INIT_SCAFFOLD_ELEMENTS in nextScaffoldPart()
6802 build_node(XML_Parser parser, int src_node, XML_Content *dest, in build_node() argument
6804 DTD *const dtd = parser->m_dtd; /* save one level of indirection */ in build_node()
6827 build_node(parser, cn, &(dest->children[i]), contpos, strpos); in build_node()
6834 build_model(XML_Parser parser) { in build_model() argument
6835 DTD *const dtd = parser->m_dtd; /* save one level of indirection */ in build_model()
6842 ret = (XML_Content *)MALLOC(parser, allocsize); in build_model()
6849 build_node(parser, 0, ret, &cpos, &str); in build_model()
6854 getElementType(XML_Parser parser, const ENCODING *enc, const char *ptr, in getElementType() argument
6856 DTD *const dtd = parser->m_dtd; /* save one level of indirection */ in getElementType()
6862 ret = (ELEMENT_TYPE *)lookup(parser, &dtd->elementTypes, name, in getElementType()
6870 if (! setElementTypePrefix(parser, ret)) in getElementType()