Lines Matching refs:parser
242 static void copy_salt_to_sipkey(XML_Parser parser, struct sipkey *key);
463 typedef enum XML_Error PTRCALL Processor(XML_Parser parser, const char *start,
485 static enum XML_Error handleUnknownEncoding(XML_Parser parser,
487 static enum XML_Error processXmlDecl(XML_Parser parser, int isGeneralTextEntity,
489 static enum XML_Error initializeEncoding(XML_Parser parser);
490 static enum XML_Error doProlog(XML_Parser parser, const ENCODING *enc,
495 static enum XML_Error processEntity(XML_Parser parser, ENTITY *entity,
497 static enum XML_Error doContent(XML_Parser parser, int startTagLevel,
501 static enum XML_Error doCdataSection(XML_Parser parser, const ENCODING *enc,
506 static enum XML_Error doIgnoreSection(XML_Parser parser, const ENCODING *enc,
511 static void freeBindings(XML_Parser parser, BINDING *bindings);
512 static enum XML_Error storeAtts(XML_Parser parser, const ENCODING *enc,
516 static enum XML_Error addBinding(XML_Parser parser, PREFIX *prefix,
521 const XML_Char *value, XML_Parser parser);
522 static enum XML_Error storeAttributeValue(XML_Parser parser,
528 appendAttributeValue(XML_Parser parser, const ENCODING *enc, XML_Bool isCdata,
531 static ATTRIBUTE_ID *getAttributeId(XML_Parser parser, const ENCODING *enc,
533 static int setElementTypePrefix(XML_Parser parser, ELEMENT_TYPE *elementType);
535 static enum XML_Error storeEntityValue(XML_Parser parser, const ENCODING *enc,
539 static enum XML_Error callStoreEntityValue(XML_Parser parser,
544 static enum XML_Error storeSelfEntityValue(XML_Parser parser, ENTITY *entity);
546 static int reportProcessingInstruction(XML_Parser parser, const ENCODING *enc,
548 static int reportComment(XML_Parser parser, const ENCODING *enc,
550 static void reportDefault(XML_Parser parser, const ENCODING *enc,
553 static const XML_Char *getContext(XML_Parser parser);
554 static XML_Bool setContext(XML_Parser parser, const XML_Char *context);
567 static NAMED *lookup(XML_Parser parser, HASH_TABLE *table, KEY name,
593 static int FASTCALL nextScaffoldPart(XML_Parser parser);
594 static XML_Content *build_model(XML_Parser parser);
595 static ELEMENT_TYPE *getElementType(XML_Parser parser, const ENCODING *enc,
601 static unsigned long generate_hash_secret_salt(XML_Parser parser);
602 static XML_Bool startParsing(XML_Parser parser);
608 static void parserInit(XML_Parser parser, const XML_Char *encodingName);
624 static void entityTrackingReportStats(XML_Parser parser, ENTITY *entity,
626 static void entityTrackingOnOpen(XML_Parser parser, ENTITY *entity,
628 static void entityTrackingOnClose(XML_Parser parser, ENTITY *entity,
631 static XML_Parser getRootParserOf(XML_Parser parser,
781 #define MALLOC(parser, s) (parser->m_mem.malloc_fcn((s))) argument
782 #define REALLOC(parser, p, s) (parser->m_mem.realloc_fcn((p), (s))) argument
783 #define FREE(parser, p) (parser->m_mem.free_fcn((p))) argument
971 generate_hash_secret_salt(XML_Parser parser) { in generate_hash_secret_salt() argument
973 (void)parser; in generate_hash_secret_salt()
1014 get_hash_secret_salt(XML_Parser parser) { in get_hash_secret_salt() argument
1015 if (parser->m_parentParser != NULL) in get_hash_secret_salt()
1016 return get_hash_secret_salt(parser->m_parentParser); in get_hash_secret_salt()
1017 return parser->m_hash_secret_salt; in get_hash_secret_salt()
1021 callProcessor(XML_Parser parser, const char *start, const char *end, in callProcessor() argument
1025 if (parser->m_reparseDeferralEnabled in callProcessor()
1026 && ! parser->m_parsingStatus.finalBuffer) { in callProcessor()
1029 const size_t had_before = parser->m_partialTokenBytesBefore; in callProcessor()
1032 = EXPAT_SAFE_PTR_DIFF(parser->m_bufferPtr, parser->m_buffer); in callProcessor()
1037 += EXPAT_SAFE_PTR_DIFF(parser->m_bufferLim, parser->m_bufferEnd); in callProcessor()
1041 || ((size_t)parser->m_lastBufferRequestSize > available_buffer); in callProcessor()
1057 ret = parser->m_processor(parser, *endPtr, end, endPtr); in callProcessor()
1061 if (parser->m_parsingStatus.parsing != XML_PARSING) { in callProcessor()
1062 parser->m_reenter = XML_FALSE; in callProcessor()
1065 if (! parser->m_reenter) { in callProcessor()
1069 parser->m_reenter = XML_FALSE; in callProcessor()
1077 parser->m_partialTokenBytesBefore = have_now; in callProcessor()
1079 parser->m_partialTokenBytesBefore = 0; in callProcessor()
1086 startParsing(XML_Parser parser) { in startParsing() argument
1088 if (parser->m_hash_secret_salt == 0) in startParsing()
1089 parser->m_hash_secret_salt = generate_hash_secret_salt(parser); in startParsing()
1090 if (parser->m_ns) { in startParsing()
1094 return setContext(parser, implicitContext); in startParsing()
1110 XML_Parser parser; in parserCreate() local
1114 parser = memsuite->malloc_fcn(sizeof(struct XML_ParserStruct)); in parserCreate()
1115 if (parser != NULL) { in parserCreate()
1116 mtemp = (XML_Memory_Handling_Suite *)&(parser->m_mem); in parserCreate()
1123 parser = (XML_Parser)malloc(sizeof(struct XML_ParserStruct)); in parserCreate()
1124 if (parser != NULL) { in parserCreate()
1125 mtemp = (XML_Memory_Handling_Suite *)&(parser->m_mem); in parserCreate()
1132 if (! parser) in parserCreate()
1133 return parser; in parserCreate()
1135 parser->m_buffer = NULL; in parserCreate()
1136 parser->m_bufferLim = NULL; in parserCreate()
1138 parser->m_attsSize = INIT_ATTS_SIZE; in parserCreate()
1139 parser->m_atts in parserCreate()
1140 = (ATTRIBUTE *)MALLOC(parser, parser->m_attsSize * sizeof(ATTRIBUTE)); in parserCreate()
1141 if (parser->m_atts == NULL) { in parserCreate()
1142 FREE(parser, parser); in parserCreate()
1146 parser->m_attInfo = (XML_AttrInfo *)MALLOC( in parserCreate()
1147 parser, parser->m_attsSize * sizeof(XML_AttrInfo)); in parserCreate()
1148 if (parser->m_attInfo == NULL) { in parserCreate()
1149 FREE(parser, parser->m_atts); in parserCreate()
1150 FREE(parser, parser); in parserCreate()
1154 parser->m_dataBuf in parserCreate()
1155 = (XML_Char *)MALLOC(parser, INIT_DATA_BUF_SIZE * sizeof(XML_Char)); in parserCreate()
1156 if (parser->m_dataBuf == NULL) { in parserCreate()
1157 FREE(parser, parser->m_atts); in parserCreate()
1159 FREE(parser, parser->m_attInfo); in parserCreate()
1161 FREE(parser, parser); in parserCreate()
1164 parser->m_dataBufEnd = parser->m_dataBuf + INIT_DATA_BUF_SIZE; in parserCreate()
1167 parser->m_dtd = dtd; in parserCreate()
1169 parser->m_dtd = dtdCreate(&parser->m_mem); in parserCreate()
1170 if (parser->m_dtd == NULL) { in parserCreate()
1171 FREE(parser, parser->m_dataBuf); in parserCreate()
1172 FREE(parser, parser->m_atts); in parserCreate()
1174 FREE(parser, parser->m_attInfo); in parserCreate()
1176 FREE(parser, parser); in parserCreate()
1181 parser->m_freeBindingList = NULL; in parserCreate()
1182 parser->m_freeTagList = NULL; in parserCreate()
1183 parser->m_freeInternalEntities = NULL; in parserCreate()
1184 parser->m_freeAttributeEntities = NULL; in parserCreate()
1185 parser->m_freeValueEntities = NULL; in parserCreate()
1187 parser->m_groupSize = 0; in parserCreate()
1188 parser->m_groupConnector = NULL; in parserCreate()
1190 parser->m_unknownEncodingHandler = NULL; in parserCreate()
1191 parser->m_unknownEncodingHandlerData = NULL; in parserCreate()
1193 parser->m_namespaceSeparator = ASCII_EXCL; in parserCreate()
1194 parser->m_ns = XML_FALSE; in parserCreate()
1195 parser->m_ns_triplets = XML_FALSE; in parserCreate()
1197 parser->m_nsAtts = NULL; in parserCreate()
1198 parser->m_nsAttsVersion = 0; in parserCreate()
1199 parser->m_nsAttsPower = 0; in parserCreate()
1201 parser->m_protocolEncodingName = NULL; in parserCreate()
1203 poolInit(&parser->m_tempPool, &(parser->m_mem)); in parserCreate()
1204 poolInit(&parser->m_temp2Pool, &(parser->m_mem)); in parserCreate()
1205 parserInit(parser, encodingName); in parserCreate()
1207 if (encodingName && ! parser->m_protocolEncodingName) { in parserCreate()
1214 parser->m_dtd = NULL; in parserCreate()
1216 XML_ParserFree(parser); in parserCreate()
1221 parser->m_ns = XML_TRUE; in parserCreate()
1222 parser->m_internalEncoding = XmlGetInternalEncodingNS(); in parserCreate()
1223 parser->m_namespaceSeparator = *nameSep; in parserCreate()
1225 parser->m_internalEncoding = XmlGetInternalEncoding(); in parserCreate()
1228 return parser; in parserCreate()
1232 parserInit(XML_Parser parser, const XML_Char *encodingName) { in parserInit() argument
1233 parser->m_processor = prologInitProcessor; in parserInit()
1234 XmlPrologStateInit(&parser->m_prologState); in parserInit()
1236 parser->m_protocolEncodingName = copyString(encodingName, &(parser->m_mem)); in parserInit()
1238 parser->m_curBase = NULL; in parserInit()
1239 XmlInitEncoding(&parser->m_initEncoding, &parser->m_encoding, 0); in parserInit()
1240 parser->m_userData = NULL; in parserInit()
1241 parser->m_handlerArg = NULL; in parserInit()
1242 parser->m_startElementHandler = NULL; in parserInit()
1243 parser->m_endElementHandler = NULL; in parserInit()
1244 parser->m_characterDataHandler = NULL; in parserInit()
1245 parser->m_processingInstructionHandler = NULL; in parserInit()
1246 parser->m_commentHandler = NULL; in parserInit()
1247 parser->m_startCdataSectionHandler = NULL; in parserInit()
1248 parser->m_endCdataSectionHandler = NULL; in parserInit()
1249 parser->m_defaultHandler = NULL; in parserInit()
1250 parser->m_startDoctypeDeclHandler = NULL; in parserInit()
1251 parser->m_endDoctypeDeclHandler = NULL; in parserInit()
1252 parser->m_unparsedEntityDeclHandler = NULL; in parserInit()
1253 parser->m_notationDeclHandler = NULL; in parserInit()
1254 parser->m_startNamespaceDeclHandler = NULL; in parserInit()
1255 parser->m_endNamespaceDeclHandler = NULL; in parserInit()
1256 parser->m_notStandaloneHandler = NULL; in parserInit()
1257 parser->m_externalEntityRefHandler = NULL; in parserInit()
1258 parser->m_externalEntityRefHandlerArg = parser; in parserInit()
1259 parser->m_skippedEntityHandler = NULL; in parserInit()
1260 parser->m_elementDeclHandler = NULL; in parserInit()
1261 parser->m_attlistDeclHandler = NULL; in parserInit()
1262 parser->m_entityDeclHandler = NULL; in parserInit()
1263 parser->m_xmlDeclHandler = NULL; in parserInit()
1264 parser->m_bufferPtr = parser->m_buffer; in parserInit()
1265 parser->m_bufferEnd = parser->m_buffer; in parserInit()
1266 parser->m_parseEndByteIndex = 0; in parserInit()
1267 parser->m_parseEndPtr = NULL; in parserInit()
1268 parser->m_partialTokenBytesBefore = 0; in parserInit()
1269 parser->m_reparseDeferralEnabled = g_reparseDeferralEnabledDefault; in parserInit()
1270 parser->m_lastBufferRequestSize = 0; in parserInit()
1271 parser->m_declElementType = NULL; in parserInit()
1272 parser->m_declAttributeId = NULL; in parserInit()
1273 parser->m_declEntity = NULL; in parserInit()
1274 parser->m_doctypeName = NULL; in parserInit()
1275 parser->m_doctypeSysid = NULL; in parserInit()
1276 parser->m_doctypePubid = NULL; in parserInit()
1277 parser->m_declAttributeType = NULL; in parserInit()
1278 parser->m_declNotationName = NULL; in parserInit()
1279 parser->m_declNotationPublicId = NULL; in parserInit()
1280 parser->m_declAttributeIsCdata = XML_FALSE; in parserInit()
1281 parser->m_declAttributeIsId = XML_FALSE; in parserInit()
1282 memset(&parser->m_position, 0, sizeof(POSITION)); in parserInit()
1283 parser->m_errorCode = XML_ERROR_NONE; in parserInit()
1284 parser->m_eventPtr = NULL; in parserInit()
1285 parser->m_eventEndPtr = NULL; in parserInit()
1286 parser->m_positionPtr = NULL; in parserInit()
1287 parser->m_openInternalEntities = NULL; in parserInit()
1288 parser->m_openAttributeEntities = NULL; in parserInit()
1289 parser->m_openValueEntities = NULL; in parserInit()
1290 parser->m_defaultExpandInternalEntities = XML_TRUE; in parserInit()
1291 parser->m_tagLevel = 0; in parserInit()
1292 parser->m_tagStack = NULL; in parserInit()
1293 parser->m_inheritedBindings = NULL; in parserInit()
1294 parser->m_nSpecifiedAtts = 0; in parserInit()
1295 parser->m_unknownEncodingMem = NULL; in parserInit()
1296 parser->m_unknownEncodingRelease = NULL; in parserInit()
1297 parser->m_unknownEncodingData = NULL; in parserInit()
1298 parser->m_parentParser = NULL; in parserInit()
1299 parser->m_parsingStatus.parsing = XML_INITIALIZED; in parserInit()
1301 parser->m_reenter = XML_FALSE; in parserInit()
1303 parser->m_isParamEntity = XML_FALSE; in parserInit()
1304 parser->m_useForeignDTD = XML_FALSE; in parserInit()
1305 parser->m_paramEntityParsing = XML_PARAM_ENTITY_PARSING_NEVER; in parserInit()
1307 parser->m_hash_secret_salt = 0; in parserInit()
1310 memset(&parser->m_accounting, 0, sizeof(ACCOUNTING)); in parserInit()
1311 parser->m_accounting.debugLevel = getDebugLevel("EXPAT_ACCOUNTING_DEBUG", 0u); in parserInit()
1312 parser->m_accounting.maximumAmplificationFactor in parserInit()
1314 parser->m_accounting.activationThresholdBytes in parserInit()
1317 memset(&parser->m_entity_stats, 0, sizeof(ENTITY_STATS)); in parserInit()
1318 parser->m_entity_stats.debugLevel = getDebugLevel("EXPAT_ENTITY_DEBUG", 0u); in parserInit()
1324 moveToFreeBindingList(XML_Parser parser, BINDING *bindings) { in moveToFreeBindingList() argument
1328 b->nextTagBinding = parser->m_freeBindingList; in moveToFreeBindingList()
1329 parser->m_freeBindingList = b; in moveToFreeBindingList()
1334 XML_ParserReset(XML_Parser parser, const XML_Char *encodingName) { in XML_ParserReset() argument
1338 if (parser == NULL) in XML_ParserReset()
1341 if (parser->m_parentParser) in XML_ParserReset()
1344 tStk = parser->m_tagStack; in XML_ParserReset()
1348 tag->parent = parser->m_freeTagList; in XML_ParserReset()
1349 moveToFreeBindingList(parser, tag->bindings); in XML_ParserReset()
1351 parser->m_freeTagList = tag; in XML_ParserReset()
1354 openEntityList = parser->m_openInternalEntities; in XML_ParserReset()
1358 openEntity->next = parser->m_freeInternalEntities; in XML_ParserReset()
1359 parser->m_freeInternalEntities = openEntity; in XML_ParserReset()
1363 openEntityList = parser->m_openAttributeEntities; in XML_ParserReset()
1367 openEntity->next = parser->m_freeAttributeEntities; in XML_ParserReset()
1368 parser->m_freeAttributeEntities = openEntity; in XML_ParserReset()
1372 openEntityList = parser->m_openValueEntities; in XML_ParserReset()
1376 openEntity->next = parser->m_freeValueEntities; in XML_ParserReset()
1377 parser->m_freeValueEntities = openEntity; in XML_ParserReset()
1379 moveToFreeBindingList(parser, parser->m_inheritedBindings); in XML_ParserReset()
1380 FREE(parser, parser->m_unknownEncodingMem); in XML_ParserReset()
1381 if (parser->m_unknownEncodingRelease) in XML_ParserReset()
1382 parser->m_unknownEncodingRelease(parser->m_unknownEncodingData); in XML_ParserReset()
1383 poolClear(&parser->m_tempPool); in XML_ParserReset()
1384 poolClear(&parser->m_temp2Pool); in XML_ParserReset()
1385 FREE(parser, (void *)parser->m_protocolEncodingName); in XML_ParserReset()
1386 parser->m_protocolEncodingName = NULL; in XML_ParserReset()
1387 parserInit(parser, encodingName); in XML_ParserReset()
1388 dtdReset(parser->m_dtd, &parser->m_mem); in XML_ParserReset()
1393 parserBusy(XML_Parser parser) { in parserBusy() argument
1394 switch (parser->m_parsingStatus.parsing) { in parserBusy()
1406 XML_SetEncoding(XML_Parser parser, const XML_Char *encodingName) { in XML_SetEncoding() argument
1407 if (parser == NULL) in XML_SetEncoding()
1413 if (parserBusy(parser)) in XML_SetEncoding()
1417 FREE(parser, (void *)parser->m_protocolEncodingName); in XML_SetEncoding()
1421 parser->m_protocolEncodingName = NULL; in XML_SetEncoding()
1424 parser->m_protocolEncodingName = copyString(encodingName, &(parser->m_mem)); in XML_SetEncoding()
1425 if (! parser->m_protocolEncodingName) in XML_SetEncoding()
1434 XML_Parser parser = oldParser; in XML_ExternalEntityParserCreate() local
1481 oldDtd = parser->m_dtd; in XML_ExternalEntityParserCreate()
1482 oldStartElementHandler = parser->m_startElementHandler; in XML_ExternalEntityParserCreate()
1483 oldEndElementHandler = parser->m_endElementHandler; in XML_ExternalEntityParserCreate()
1484 oldCharacterDataHandler = parser->m_characterDataHandler; in XML_ExternalEntityParserCreate()
1485 oldProcessingInstructionHandler = parser->m_processingInstructionHandler; in XML_ExternalEntityParserCreate()
1486 oldCommentHandler = parser->m_commentHandler; in XML_ExternalEntityParserCreate()
1487 oldStartCdataSectionHandler = parser->m_startCdataSectionHandler; in XML_ExternalEntityParserCreate()
1488 oldEndCdataSectionHandler = parser->m_endCdataSectionHandler; in XML_ExternalEntityParserCreate()
1489 oldDefaultHandler = parser->m_defaultHandler; in XML_ExternalEntityParserCreate()
1490 oldUnparsedEntityDeclHandler = parser->m_unparsedEntityDeclHandler; in XML_ExternalEntityParserCreate()
1491 oldNotationDeclHandler = parser->m_notationDeclHandler; in XML_ExternalEntityParserCreate()
1492 oldStartNamespaceDeclHandler = parser->m_startNamespaceDeclHandler; in XML_ExternalEntityParserCreate()
1493 oldEndNamespaceDeclHandler = parser->m_endNamespaceDeclHandler; in XML_ExternalEntityParserCreate()
1494 oldNotStandaloneHandler = parser->m_notStandaloneHandler; in XML_ExternalEntityParserCreate()
1495 oldExternalEntityRefHandler = parser->m_externalEntityRefHandler; in XML_ExternalEntityParserCreate()
1496 oldSkippedEntityHandler = parser->m_skippedEntityHandler; in XML_ExternalEntityParserCreate()
1497 oldUnknownEncodingHandler = parser->m_unknownEncodingHandler; in XML_ExternalEntityParserCreate()
1498 oldElementDeclHandler = parser->m_elementDeclHandler; in XML_ExternalEntityParserCreate()
1499 oldAttlistDeclHandler = parser->m_attlistDeclHandler; in XML_ExternalEntityParserCreate()
1500 oldEntityDeclHandler = parser->m_entityDeclHandler; in XML_ExternalEntityParserCreate()
1501 oldXmlDeclHandler = parser->m_xmlDeclHandler; in XML_ExternalEntityParserCreate()
1502 oldDeclElementType = parser->m_declElementType; in XML_ExternalEntityParserCreate()
1504 oldUserData = parser->m_userData; in XML_ExternalEntityParserCreate()
1505 oldHandlerArg = parser->m_handlerArg; in XML_ExternalEntityParserCreate()
1506 oldDefaultExpandInternalEntities = parser->m_defaultExpandInternalEntities; in XML_ExternalEntityParserCreate()
1507 oldExternalEntityRefHandlerArg = parser->m_externalEntityRefHandlerArg; in XML_ExternalEntityParserCreate()
1509 oldParamEntityParsing = parser->m_paramEntityParsing; in XML_ExternalEntityParserCreate()
1510 oldInEntityValue = parser->m_prologState.inEntityValue; in XML_ExternalEntityParserCreate()
1512 oldns_triplets = parser->m_ns_triplets; in XML_ExternalEntityParserCreate()
1518 oldhash_secret_salt = parser->m_hash_secret_salt; in XML_ExternalEntityParserCreate()
1519 oldReparseDeferralEnabled = parser->m_reparseDeferralEnabled; in XML_ExternalEntityParserCreate()
1531 if (parser->m_ns) { in XML_ExternalEntityParserCreate()
1532 XML_Char tmp[2] = {parser->m_namespaceSeparator, 0}; in XML_ExternalEntityParserCreate()
1533 parser = parserCreate(encodingName, &parser->m_mem, tmp, newDtd); in XML_ExternalEntityParserCreate()
1535 parser = parserCreate(encodingName, &parser->m_mem, NULL, newDtd); in XML_ExternalEntityParserCreate()
1538 if (! parser) in XML_ExternalEntityParserCreate()
1541 parser->m_startElementHandler = oldStartElementHandler; in XML_ExternalEntityParserCreate()
1542 parser->m_endElementHandler = oldEndElementHandler; in XML_ExternalEntityParserCreate()
1543 parser->m_characterDataHandler = oldCharacterDataHandler; in XML_ExternalEntityParserCreate()
1544 parser->m_processingInstructionHandler = oldProcessingInstructionHandler; in XML_ExternalEntityParserCreate()
1545 parser->m_commentHandler = oldCommentHandler; in XML_ExternalEntityParserCreate()
1546 parser->m_startCdataSectionHandler = oldStartCdataSectionHandler; in XML_ExternalEntityParserCreate()
1547 parser->m_endCdataSectionHandler = oldEndCdataSectionHandler; in XML_ExternalEntityParserCreate()
1548 parser->m_defaultHandler = oldDefaultHandler; in XML_ExternalEntityParserCreate()
1549 parser->m_unparsedEntityDeclHandler = oldUnparsedEntityDeclHandler; in XML_ExternalEntityParserCreate()
1550 parser->m_notationDeclHandler = oldNotationDeclHandler; in XML_ExternalEntityParserCreate()
1551 parser->m_startNamespaceDeclHandler = oldStartNamespaceDeclHandler; in XML_ExternalEntityParserCreate()
1552 parser->m_endNamespaceDeclHandler = oldEndNamespaceDeclHandler; in XML_ExternalEntityParserCreate()
1553 parser->m_notStandaloneHandler = oldNotStandaloneHandler; in XML_ExternalEntityParserCreate()
1554 parser->m_externalEntityRefHandler = oldExternalEntityRefHandler; in XML_ExternalEntityParserCreate()
1555 parser->m_skippedEntityHandler = oldSkippedEntityHandler; in XML_ExternalEntityParserCreate()
1556 parser->m_unknownEncodingHandler = oldUnknownEncodingHandler; in XML_ExternalEntityParserCreate()
1557 parser->m_elementDeclHandler = oldElementDeclHandler; in XML_ExternalEntityParserCreate()
1558 parser->m_attlistDeclHandler = oldAttlistDeclHandler; in XML_ExternalEntityParserCreate()
1559 parser->m_entityDeclHandler = oldEntityDeclHandler; in XML_ExternalEntityParserCreate()
1560 parser->m_xmlDeclHandler = oldXmlDeclHandler; in XML_ExternalEntityParserCreate()
1561 parser->m_declElementType = oldDeclElementType; in XML_ExternalEntityParserCreate()
1562 parser->m_userData = oldUserData; in XML_ExternalEntityParserCreate()
1564 parser->m_handlerArg = parser->m_userData; in XML_ExternalEntityParserCreate()
1566 parser->m_handlerArg = parser; in XML_ExternalEntityParserCreate()
1568 parser->m_externalEntityRefHandlerArg = oldExternalEntityRefHandlerArg; in XML_ExternalEntityParserCreate()
1569 parser->m_defaultExpandInternalEntities = oldDefaultExpandInternalEntities; in XML_ExternalEntityParserCreate()
1570 parser->m_ns_triplets = oldns_triplets; in XML_ExternalEntityParserCreate()
1571 parser->m_hash_secret_salt = oldhash_secret_salt; in XML_ExternalEntityParserCreate()
1572 parser->m_reparseDeferralEnabled = oldReparseDeferralEnabled; in XML_ExternalEntityParserCreate()
1573 parser->m_parentParser = oldParser; in XML_ExternalEntityParserCreate()
1575 parser->m_paramEntityParsing = oldParamEntityParsing; in XML_ExternalEntityParserCreate()
1576 parser->m_prologState.inEntityValue = oldInEntityValue; in XML_ExternalEntityParserCreate()
1579 if (! dtdCopy(oldParser, parser->m_dtd, oldDtd, &parser->m_mem) in XML_ExternalEntityParserCreate()
1580 || ! setContext(parser, context)) { in XML_ExternalEntityParserCreate()
1581 XML_ParserFree(parser); in XML_ExternalEntityParserCreate()
1584 parser->m_processor = externalEntityInitProcessor; in XML_ExternalEntityParserCreate()
1594 parser->m_isParamEntity = XML_TRUE; in XML_ExternalEntityParserCreate()
1595 XmlPrologStateInitExternalEntity(&parser->m_prologState); in XML_ExternalEntityParserCreate()
1596 parser->m_processor = externalParEntInitProcessor; in XML_ExternalEntityParserCreate()
1599 return parser; in XML_ExternalEntityParserCreate()
1603 destroyBindings(BINDING *bindings, XML_Parser parser) { in destroyBindings() argument
1609 FREE(parser, b->uri); in destroyBindings()
1610 FREE(parser, b); in destroyBindings()
1615 XML_ParserFree(XML_Parser parser) { in XML_ParserFree() argument
1618 if (parser == NULL) in XML_ParserFree()
1621 tagList = parser->m_tagStack; in XML_ParserFree()
1625 if (parser->m_freeTagList == NULL) in XML_ParserFree()
1627 tagList = parser->m_freeTagList; in XML_ParserFree()
1628 parser->m_freeTagList = NULL; in XML_ParserFree()
1632 FREE(parser, p->buf); in XML_ParserFree()
1633 destroyBindings(p->bindings, parser); in XML_ParserFree()
1634 FREE(parser, p); in XML_ParserFree()
1637 entityList = parser->m_openInternalEntities; in XML_ParserFree()
1641 if (parser->m_freeInternalEntities == NULL) in XML_ParserFree()
1643 entityList = parser->m_freeInternalEntities; in XML_ParserFree()
1644 parser->m_freeInternalEntities = NULL; in XML_ParserFree()
1648 FREE(parser, openEntity); in XML_ParserFree()
1651 entityList = parser->m_openAttributeEntities; in XML_ParserFree()
1655 if (parser->m_freeAttributeEntities == NULL) in XML_ParserFree()
1657 entityList = parser->m_freeAttributeEntities; in XML_ParserFree()
1658 parser->m_freeAttributeEntities = NULL; in XML_ParserFree()
1662 FREE(parser, openEntity); in XML_ParserFree()
1665 entityList = parser->m_openValueEntities; in XML_ParserFree()
1669 if (parser->m_freeValueEntities == NULL) in XML_ParserFree()
1671 entityList = parser->m_freeValueEntities; in XML_ParserFree()
1672 parser->m_freeValueEntities = NULL; in XML_ParserFree()
1676 FREE(parser, openEntity); in XML_ParserFree()
1678 destroyBindings(parser->m_freeBindingList, parser); in XML_ParserFree()
1679 destroyBindings(parser->m_inheritedBindings, parser); in XML_ParserFree()
1680 poolDestroy(&parser->m_tempPool); in XML_ParserFree()
1681 poolDestroy(&parser->m_temp2Pool); in XML_ParserFree()
1682 FREE(parser, (void *)parser->m_protocolEncodingName); in XML_ParserFree()
1687 if (! parser->m_isParamEntity && parser->m_dtd) in XML_ParserFree()
1689 if (parser->m_dtd) in XML_ParserFree()
1691 dtdDestroy(parser->m_dtd, (XML_Bool)! parser->m_parentParser, in XML_ParserFree()
1692 &parser->m_mem); in XML_ParserFree()
1693 FREE(parser, (void *)parser->m_atts); in XML_ParserFree()
1695 FREE(parser, (void *)parser->m_attInfo); in XML_ParserFree()
1697 FREE(parser, parser->m_groupConnector); in XML_ParserFree()
1698 FREE(parser, parser->m_buffer); in XML_ParserFree()
1699 FREE(parser, parser->m_dataBuf); in XML_ParserFree()
1700 FREE(parser, parser->m_nsAtts); in XML_ParserFree()
1701 FREE(parser, parser->m_unknownEncodingMem); in XML_ParserFree()
1702 if (parser->m_unknownEncodingRelease) in XML_ParserFree()
1703 parser->m_unknownEncodingRelease(parser->m_unknownEncodingData); in XML_ParserFree()
1704 FREE(parser, parser); in XML_ParserFree()
1708 XML_UseParserAsHandlerArg(XML_Parser parser) { in XML_UseParserAsHandlerArg() argument
1709 if (parser != NULL) in XML_UseParserAsHandlerArg()
1710 parser->m_handlerArg = parser; in XML_UseParserAsHandlerArg()
1714 XML_UseForeignDTD(XML_Parser parser, XML_Bool useDTD) { in XML_UseForeignDTD() argument
1715 if (parser == NULL) in XML_UseForeignDTD()
1719 if (parserBusy(parser)) in XML_UseForeignDTD()
1721 parser->m_useForeignDTD = useDTD; in XML_UseForeignDTD()
1730 XML_SetReturnNSTriplet(XML_Parser parser, int do_nst) { in XML_SetReturnNSTriplet() argument
1731 if (parser == NULL) in XML_SetReturnNSTriplet()
1734 if (parserBusy(parser)) in XML_SetReturnNSTriplet()
1736 parser->m_ns_triplets = do_nst ? XML_TRUE : XML_FALSE; in XML_SetReturnNSTriplet()
1740 XML_SetUserData(XML_Parser parser, void *p) { in XML_SetUserData() argument
1741 if (parser == NULL) in XML_SetUserData()
1743 if (parser->m_handlerArg == parser->m_userData) in XML_SetUserData()
1744 parser->m_handlerArg = parser->m_userData = p; in XML_SetUserData()
1746 parser->m_userData = p; in XML_SetUserData()
1750 XML_SetBase(XML_Parser parser, const XML_Char *p) { in XML_SetBase() argument
1751 if (parser == NULL) in XML_SetBase()
1754 p = poolCopyString(&parser->m_dtd->pool, p); in XML_SetBase()
1757 parser->m_curBase = p; in XML_SetBase()
1759 parser->m_curBase = NULL; in XML_SetBase()
1764 XML_GetBase(XML_Parser parser) { in XML_GetBase() argument
1765 if (parser == NULL) in XML_GetBase()
1767 return parser->m_curBase; in XML_GetBase()
1771 XML_GetSpecifiedAttributeCount(XML_Parser parser) { in XML_GetSpecifiedAttributeCount() argument
1772 if (parser == NULL) in XML_GetSpecifiedAttributeCount()
1774 return parser->m_nSpecifiedAtts; in XML_GetSpecifiedAttributeCount()
1778 XML_GetIdAttributeIndex(XML_Parser parser) { in XML_GetIdAttributeIndex() argument
1779 if (parser == NULL) in XML_GetIdAttributeIndex()
1781 return parser->m_idAttIndex; in XML_GetIdAttributeIndex()
1786 XML_GetAttributeInfo(XML_Parser parser) { in XML_GetAttributeInfo() argument
1787 if (parser == NULL) in XML_GetAttributeInfo()
1789 return parser->m_attInfo; in XML_GetAttributeInfo()
1794 XML_SetElementHandler(XML_Parser parser, XML_StartElementHandler start, in XML_SetElementHandler() argument
1796 if (parser == NULL) in XML_SetElementHandler()
1798 parser->m_startElementHandler = start; in XML_SetElementHandler()
1799 parser->m_endElementHandler = end; in XML_SetElementHandler()
1803 XML_SetStartElementHandler(XML_Parser parser, XML_StartElementHandler start) { in XML_SetStartElementHandler() argument
1804 if (parser != NULL) in XML_SetStartElementHandler()
1805 parser->m_startElementHandler = start; in XML_SetStartElementHandler()
1809 XML_SetEndElementHandler(XML_Parser parser, XML_EndElementHandler end) { in XML_SetEndElementHandler() argument
1810 if (parser != NULL) in XML_SetEndElementHandler()
1811 parser->m_endElementHandler = end; in XML_SetEndElementHandler()
1815 XML_SetCharacterDataHandler(XML_Parser parser, in XML_SetCharacterDataHandler() argument
1817 if (parser != NULL) in XML_SetCharacterDataHandler()
1818 parser->m_characterDataHandler = handler; in XML_SetCharacterDataHandler()
1822 XML_SetProcessingInstructionHandler(XML_Parser parser, in XML_SetProcessingInstructionHandler() argument
1824 if (parser != NULL) in XML_SetProcessingInstructionHandler()
1825 parser->m_processingInstructionHandler = handler; in XML_SetProcessingInstructionHandler()
1829 XML_SetCommentHandler(XML_Parser parser, XML_CommentHandler handler) { in XML_SetCommentHandler() argument
1830 if (parser != NULL) in XML_SetCommentHandler()
1831 parser->m_commentHandler = handler; in XML_SetCommentHandler()
1835 XML_SetCdataSectionHandler(XML_Parser parser, in XML_SetCdataSectionHandler() argument
1838 if (parser == NULL) in XML_SetCdataSectionHandler()
1840 parser->m_startCdataSectionHandler = start; in XML_SetCdataSectionHandler()
1841 parser->m_endCdataSectionHandler = end; in XML_SetCdataSectionHandler()
1845 XML_SetStartCdataSectionHandler(XML_Parser parser, in XML_SetStartCdataSectionHandler() argument
1847 if (parser != NULL) in XML_SetStartCdataSectionHandler()
1848 parser->m_startCdataSectionHandler = start; in XML_SetStartCdataSectionHandler()
1852 XML_SetEndCdataSectionHandler(XML_Parser parser, in XML_SetEndCdataSectionHandler() argument
1854 if (parser != NULL) in XML_SetEndCdataSectionHandler()
1855 parser->m_endCdataSectionHandler = end; in XML_SetEndCdataSectionHandler()
1859 XML_SetDefaultHandler(XML_Parser parser, XML_DefaultHandler handler) { in XML_SetDefaultHandler() argument
1860 if (parser == NULL) in XML_SetDefaultHandler()
1862 parser->m_defaultHandler = handler; in XML_SetDefaultHandler()
1863 parser->m_defaultExpandInternalEntities = XML_FALSE; in XML_SetDefaultHandler()
1867 XML_SetDefaultHandlerExpand(XML_Parser parser, XML_DefaultHandler handler) { in XML_SetDefaultHandlerExpand() argument
1868 if (parser == NULL) in XML_SetDefaultHandlerExpand()
1870 parser->m_defaultHandler = handler; in XML_SetDefaultHandlerExpand()
1871 parser->m_defaultExpandInternalEntities = XML_TRUE; in XML_SetDefaultHandlerExpand()
1875 XML_SetDoctypeDeclHandler(XML_Parser parser, XML_StartDoctypeDeclHandler start, in XML_SetDoctypeDeclHandler() argument
1877 if (parser == NULL) in XML_SetDoctypeDeclHandler()
1879 parser->m_startDoctypeDeclHandler = start; in XML_SetDoctypeDeclHandler()
1880 parser->m_endDoctypeDeclHandler = end; in XML_SetDoctypeDeclHandler()
1884 XML_SetStartDoctypeDeclHandler(XML_Parser parser, in XML_SetStartDoctypeDeclHandler() argument
1886 if (parser != NULL) in XML_SetStartDoctypeDeclHandler()
1887 parser->m_startDoctypeDeclHandler = start; in XML_SetStartDoctypeDeclHandler()
1891 XML_SetEndDoctypeDeclHandler(XML_Parser parser, XML_EndDoctypeDeclHandler end) { in XML_SetEndDoctypeDeclHandler() argument
1892 if (parser != NULL) in XML_SetEndDoctypeDeclHandler()
1893 parser->m_endDoctypeDeclHandler = end; in XML_SetEndDoctypeDeclHandler()
1897 XML_SetUnparsedEntityDeclHandler(XML_Parser parser, in XML_SetUnparsedEntityDeclHandler() argument
1899 if (parser != NULL) in XML_SetUnparsedEntityDeclHandler()
1900 parser->m_unparsedEntityDeclHandler = handler; in XML_SetUnparsedEntityDeclHandler()
1904 XML_SetNotationDeclHandler(XML_Parser parser, XML_NotationDeclHandler handler) { in XML_SetNotationDeclHandler() argument
1905 if (parser != NULL) in XML_SetNotationDeclHandler()
1906 parser->m_notationDeclHandler = handler; in XML_SetNotationDeclHandler()
1910 XML_SetNamespaceDeclHandler(XML_Parser parser, in XML_SetNamespaceDeclHandler() argument
1913 if (parser == NULL) in XML_SetNamespaceDeclHandler()
1915 parser->m_startNamespaceDeclHandler = start; in XML_SetNamespaceDeclHandler()
1916 parser->m_endNamespaceDeclHandler = end; in XML_SetNamespaceDeclHandler()
1920 XML_SetStartNamespaceDeclHandler(XML_Parser parser, in XML_SetStartNamespaceDeclHandler() argument
1922 if (parser != NULL) in XML_SetStartNamespaceDeclHandler()
1923 parser->m_startNamespaceDeclHandler = start; in XML_SetStartNamespaceDeclHandler()
1927 XML_SetEndNamespaceDeclHandler(XML_Parser parser, in XML_SetEndNamespaceDeclHandler() argument
1929 if (parser != NULL) in XML_SetEndNamespaceDeclHandler()
1930 parser->m_endNamespaceDeclHandler = end; in XML_SetEndNamespaceDeclHandler()
1934 XML_SetNotStandaloneHandler(XML_Parser parser, in XML_SetNotStandaloneHandler() argument
1936 if (parser != NULL) in XML_SetNotStandaloneHandler()
1937 parser->m_notStandaloneHandler = handler; in XML_SetNotStandaloneHandler()
1941 XML_SetExternalEntityRefHandler(XML_Parser parser, in XML_SetExternalEntityRefHandler() argument
1943 if (parser != NULL) in XML_SetExternalEntityRefHandler()
1944 parser->m_externalEntityRefHandler = handler; in XML_SetExternalEntityRefHandler()
1948 XML_SetExternalEntityRefHandlerArg(XML_Parser parser, void *arg) { in XML_SetExternalEntityRefHandlerArg() argument
1949 if (parser == NULL) in XML_SetExternalEntityRefHandlerArg()
1952 parser->m_externalEntityRefHandlerArg = (XML_Parser)arg; in XML_SetExternalEntityRefHandlerArg()
1954 parser->m_externalEntityRefHandlerArg = parser; in XML_SetExternalEntityRefHandlerArg()
1958 XML_SetSkippedEntityHandler(XML_Parser parser, in XML_SetSkippedEntityHandler() argument
1960 if (parser != NULL) in XML_SetSkippedEntityHandler()
1961 parser->m_skippedEntityHandler = handler; in XML_SetSkippedEntityHandler()
1965 XML_SetUnknownEncodingHandler(XML_Parser parser, in XML_SetUnknownEncodingHandler() argument
1967 if (parser == NULL) in XML_SetUnknownEncodingHandler()
1969 parser->m_unknownEncodingHandler = handler; in XML_SetUnknownEncodingHandler()
1970 parser->m_unknownEncodingHandlerData = data; in XML_SetUnknownEncodingHandler()
1974 XML_SetElementDeclHandler(XML_Parser parser, XML_ElementDeclHandler eldecl) { in XML_SetElementDeclHandler() argument
1975 if (parser != NULL) in XML_SetElementDeclHandler()
1976 parser->m_elementDeclHandler = eldecl; in XML_SetElementDeclHandler()
1980 XML_SetAttlistDeclHandler(XML_Parser parser, XML_AttlistDeclHandler attdecl) { in XML_SetAttlistDeclHandler() argument
1981 if (parser != NULL) in XML_SetAttlistDeclHandler()
1982 parser->m_attlistDeclHandler = attdecl; in XML_SetAttlistDeclHandler()
1986 XML_SetEntityDeclHandler(XML_Parser parser, XML_EntityDeclHandler handler) { in XML_SetEntityDeclHandler() argument
1987 if (parser != NULL) in XML_SetEntityDeclHandler()
1988 parser->m_entityDeclHandler = handler; in XML_SetEntityDeclHandler()
1992 XML_SetXmlDeclHandler(XML_Parser parser, XML_XmlDeclHandler handler) { in XML_SetXmlDeclHandler() argument
1993 if (parser != NULL) in XML_SetXmlDeclHandler()
1994 parser->m_xmlDeclHandler = handler; in XML_SetXmlDeclHandler()
1998 XML_SetParamEntityParsing(XML_Parser parser, in XML_SetParamEntityParsing() argument
2000 if (parser == NULL) in XML_SetParamEntityParsing()
2003 if (parserBusy(parser)) in XML_SetParamEntityParsing()
2006 parser->m_paramEntityParsing = peParsing; in XML_SetParamEntityParsing()
2014 XML_SetHashSalt(XML_Parser parser, unsigned long hash_salt) { in XML_SetHashSalt() argument
2015 if (parser == NULL) in XML_SetHashSalt()
2017 if (parser->m_parentParser) in XML_SetHashSalt()
2018 return XML_SetHashSalt(parser->m_parentParser, hash_salt); in XML_SetHashSalt()
2020 if (parserBusy(parser)) in XML_SetHashSalt()
2022 parser->m_hash_secret_salt = hash_salt; in XML_SetHashSalt()
2027 XML_Parse(XML_Parser parser, const char *s, int len, int isFinal) { in XML_Parse() argument
2028 if ((parser == NULL) || (len < 0) || ((s == NULL) && (len != 0))) { in XML_Parse()
2029 if (parser != NULL) in XML_Parse()
2030 parser->m_errorCode = XML_ERROR_INVALID_ARGUMENT; in XML_Parse()
2033 switch (parser->m_parsingStatus.parsing) { in XML_Parse()
2035 parser->m_errorCode = XML_ERROR_SUSPENDED; in XML_Parse()
2038 parser->m_errorCode = XML_ERROR_FINISHED; in XML_Parse()
2041 if (parser->m_parentParser == NULL && ! startParsing(parser)) { in XML_Parse()
2042 parser->m_errorCode = XML_ERROR_NO_MEMORY; in XML_Parse()
2047 parser->m_parsingStatus.parsing = XML_PARSING; in XML_Parse()
2051 if (parser->m_bufferPtr == parser->m_bufferEnd) { in XML_Parse()
2056 if ((XML_Size)len > ((XML_Size)-1) / 2 - parser->m_parseEndByteIndex) { in XML_Parse()
2057 parser->m_errorCode = XML_ERROR_NO_MEMORY; in XML_Parse()
2058 parser->m_eventPtr = parser->m_eventEndPtr = NULL; in XML_Parse()
2059 parser->m_processor = errorProcessor; in XML_Parse()
2064 parser->m_lastBufferRequestSize = len; in XML_Parse()
2065 parser->m_parseEndByteIndex += len; in XML_Parse()
2066 parser->m_positionPtr = s; in XML_Parse()
2067 parser->m_parsingStatus.finalBuffer = (XML_Bool)isFinal; in XML_Parse()
2069 parser->m_errorCode in XML_Parse()
2070 = callProcessor(parser, s, parser->m_parseEndPtr = s + len, &end); in XML_Parse()
2072 if (parser->m_errorCode != XML_ERROR_NONE) { in XML_Parse()
2073 parser->m_eventEndPtr = parser->m_eventPtr; in XML_Parse()
2074 parser->m_processor = errorProcessor; in XML_Parse()
2077 switch (parser->m_parsingStatus.parsing) { in XML_Parse()
2084 parser->m_parsingStatus.parsing = XML_FINISHED; in XML_Parse()
2093 XmlUpdatePosition(parser->m_encoding, parser->m_positionPtr, end, in XML_Parse()
2094 &parser->m_position); in XML_Parse()
2099 const enum XML_Parsing originalStatus = parser->m_parsingStatus.parsing; in XML_Parse()
2100 parser->m_parsingStatus.parsing = XML_PARSING; in XML_Parse()
2101 void *const temp = XML_GetBuffer(parser, nLeftOver); in XML_Parse()
2102 parser->m_parsingStatus.parsing = originalStatus; in XML_Parse()
2105 parser->m_lastBufferRequestSize = len; in XML_Parse()
2108 parser->m_eventPtr = parser->m_eventEndPtr = NULL; in XML_Parse()
2109 parser->m_processor = errorProcessor; in XML_Parse()
2116 memcpy(parser->m_buffer, end, nLeftOver); in XML_Parse()
2118 parser->m_bufferPtr = parser->m_buffer; in XML_Parse()
2119 parser->m_bufferEnd = parser->m_buffer + nLeftOver; in XML_Parse()
2120 parser->m_positionPtr = parser->m_bufferPtr; in XML_Parse()
2121 parser->m_parseEndPtr = parser->m_bufferEnd; in XML_Parse()
2122 parser->m_eventPtr = parser->m_bufferPtr; in XML_Parse()
2123 parser->m_eventEndPtr = parser->m_bufferPtr; in XML_Parse()
2127 void *buff = XML_GetBuffer(parser, len); in XML_Parse()
2134 return XML_ParseBuffer(parser, len, isFinal); in XML_Parse()
2138 XML_ParseBuffer(XML_Parser parser, int len, int isFinal) { in XML_ParseBuffer() argument
2142 if (parser == NULL) in XML_ParseBuffer()
2146 parser->m_errorCode = XML_ERROR_INVALID_ARGUMENT; in XML_ParseBuffer()
2150 switch (parser->m_parsingStatus.parsing) { in XML_ParseBuffer()
2152 parser->m_errorCode = XML_ERROR_SUSPENDED; in XML_ParseBuffer()
2155 parser->m_errorCode = XML_ERROR_FINISHED; in XML_ParseBuffer()
2159 if (! parser->m_bufferPtr) { in XML_ParseBuffer()
2160 parser->m_errorCode = XML_ERROR_NO_BUFFER; in XML_ParseBuffer()
2164 if (parser->m_parentParser == NULL && ! startParsing(parser)) { in XML_ParseBuffer()
2165 parser->m_errorCode = XML_ERROR_NO_MEMORY; in XML_ParseBuffer()
2170 parser->m_parsingStatus.parsing = XML_PARSING; in XML_ParseBuffer()
2173 start = parser->m_bufferPtr; in XML_ParseBuffer()
2174 parser->m_positionPtr = start; in XML_ParseBuffer()
2175 parser->m_bufferEnd += len; in XML_ParseBuffer()
2176 parser->m_parseEndPtr = parser->m_bufferEnd; in XML_ParseBuffer()
2177 parser->m_parseEndByteIndex += len; in XML_ParseBuffer()
2178 parser->m_parsingStatus.finalBuffer = (XML_Bool)isFinal; in XML_ParseBuffer()
2180 parser->m_errorCode = callProcessor(parser, start, parser->m_parseEndPtr, in XML_ParseBuffer()
2181 &parser->m_bufferPtr); in XML_ParseBuffer()
2183 if (parser->m_errorCode != XML_ERROR_NONE) { in XML_ParseBuffer()
2184 parser->m_eventEndPtr = parser->m_eventPtr; in XML_ParseBuffer()
2185 parser->m_processor = errorProcessor; in XML_ParseBuffer()
2188 switch (parser->m_parsingStatus.parsing) { in XML_ParseBuffer()
2195 parser->m_parsingStatus.parsing = XML_FINISHED; in XML_ParseBuffer()
2202 XmlUpdatePosition(parser->m_encoding, parser->m_positionPtr, in XML_ParseBuffer()
2203 parser->m_bufferPtr, &parser->m_position); in XML_ParseBuffer()
2204 parser->m_positionPtr = parser->m_bufferPtr; in XML_ParseBuffer()
2209 XML_GetBuffer(XML_Parser parser, int len) { in XML_GetBuffer() argument
2210 if (parser == NULL) in XML_GetBuffer()
2213 parser->m_errorCode = XML_ERROR_NO_MEMORY; in XML_GetBuffer()
2216 switch (parser->m_parsingStatus.parsing) { in XML_GetBuffer()
2218 parser->m_errorCode = XML_ERROR_SUSPENDED; in XML_GetBuffer()
2221 parser->m_errorCode = XML_ERROR_FINISHED; in XML_GetBuffer()
2228 parser->m_lastBufferRequestSize = len; in XML_GetBuffer()
2229 if (len > EXPAT_SAFE_PTR_DIFF(parser->m_bufferLim, parser->m_bufferEnd) in XML_GetBuffer()
2230 || parser->m_buffer == NULL) { in XML_GetBuffer()
2237 parser->m_bufferEnd, parser->m_bufferPtr)); in XML_GetBuffer()
2239 parser->m_errorCode = XML_ERROR_NO_MEMORY; in XML_GetBuffer()
2243 keep = (int)EXPAT_SAFE_PTR_DIFF(parser->m_bufferPtr, parser->m_buffer); in XML_GetBuffer()
2248 parser->m_errorCode = XML_ERROR_NO_MEMORY; in XML_GetBuffer()
2253 if (parser->m_buffer && parser->m_bufferPtr in XML_GetBuffer()
2255 <= EXPAT_SAFE_PTR_DIFF(parser->m_bufferLim, parser->m_buffer)) { in XML_GetBuffer()
2257 if (keep < EXPAT_SAFE_PTR_DIFF(parser->m_bufferPtr, parser->m_buffer)) { in XML_GetBuffer()
2259 = (int)EXPAT_SAFE_PTR_DIFF(parser->m_bufferPtr, parser->m_buffer) in XML_GetBuffer()
2263 memmove(parser->m_buffer, &parser->m_buffer[offset], in XML_GetBuffer()
2264 parser->m_bufferEnd - parser->m_bufferPtr + keep); in XML_GetBuffer()
2265 parser->m_bufferEnd -= offset; in XML_GetBuffer()
2266 parser->m_bufferPtr -= offset; in XML_GetBuffer()
2269 memmove(parser->m_buffer, parser->m_bufferPtr, in XML_GetBuffer()
2270 EXPAT_SAFE_PTR_DIFF(parser->m_bufferEnd, parser->m_bufferPtr)); in XML_GetBuffer()
2271 parser->m_bufferEnd in XML_GetBuffer()
2272 = parser->m_buffer in XML_GetBuffer()
2273 + EXPAT_SAFE_PTR_DIFF(parser->m_bufferEnd, parser->m_bufferPtr); in XML_GetBuffer()
2274 parser->m_bufferPtr = parser->m_buffer; in XML_GetBuffer()
2279 = (int)EXPAT_SAFE_PTR_DIFF(parser->m_bufferLim, parser->m_buffer); in XML_GetBuffer()
2287 parser->m_errorCode = XML_ERROR_NO_MEMORY; in XML_GetBuffer()
2290 newBuf = (char *)MALLOC(parser, bufferSize); in XML_GetBuffer()
2292 parser->m_errorCode = XML_ERROR_NO_MEMORY; in XML_GetBuffer()
2295 parser->m_bufferLim = newBuf + bufferSize; in XML_GetBuffer()
2297 if (parser->m_bufferPtr) { in XML_GetBuffer()
2298 memcpy(newBuf, &parser->m_bufferPtr[-keep], in XML_GetBuffer()
2299 EXPAT_SAFE_PTR_DIFF(parser->m_bufferEnd, parser->m_bufferPtr) in XML_GetBuffer()
2301 FREE(parser, parser->m_buffer); in XML_GetBuffer()
2302 parser->m_buffer = newBuf; in XML_GetBuffer()
2303 parser->m_bufferEnd in XML_GetBuffer()
2304 = parser->m_buffer in XML_GetBuffer()
2305 + EXPAT_SAFE_PTR_DIFF(parser->m_bufferEnd, parser->m_bufferPtr) in XML_GetBuffer()
2307 parser->m_bufferPtr = parser->m_buffer + keep; in XML_GetBuffer()
2310 parser->m_bufferEnd = newBuf; in XML_GetBuffer()
2311 parser->m_bufferPtr = parser->m_buffer = newBuf; in XML_GetBuffer()
2314 if (parser->m_bufferPtr) { in XML_GetBuffer()
2315 memcpy(newBuf, parser->m_bufferPtr, in XML_GetBuffer()
2316 EXPAT_SAFE_PTR_DIFF(parser->m_bufferEnd, parser->m_bufferPtr)); in XML_GetBuffer()
2317 FREE(parser, parser->m_buffer); in XML_GetBuffer()
2318 parser->m_bufferEnd in XML_GetBuffer()
2320 + EXPAT_SAFE_PTR_DIFF(parser->m_bufferEnd, parser->m_bufferPtr); in XML_GetBuffer()
2323 parser->m_bufferEnd = newBuf; in XML_GetBuffer()
2325 parser->m_bufferPtr = parser->m_buffer = newBuf; in XML_GetBuffer()
2328 parser->m_eventPtr = parser->m_eventEndPtr = NULL; in XML_GetBuffer()
2329 parser->m_positionPtr = NULL; in XML_GetBuffer()
2331 return parser->m_bufferEnd; in XML_GetBuffer()
2335 triggerReenter(XML_Parser parser) { in triggerReenter() argument
2336 parser->m_reenter = XML_TRUE; in triggerReenter()
2340 XML_StopParser(XML_Parser parser, XML_Bool resumable) { in XML_StopParser() argument
2341 if (parser == NULL) in XML_StopParser()
2343 switch (parser->m_parsingStatus.parsing) { in XML_StopParser()
2345 parser->m_errorCode = XML_ERROR_NOT_STARTED; in XML_StopParser()
2349 parser->m_errorCode = XML_ERROR_SUSPENDED; in XML_StopParser()
2352 parser->m_parsingStatus.parsing = XML_FINISHED; in XML_StopParser()
2355 parser->m_errorCode = XML_ERROR_FINISHED; in XML_StopParser()
2360 if (parser->m_isParamEntity) { in XML_StopParser()
2361 parser->m_errorCode = XML_ERROR_SUSPEND_PE; in XML_StopParser()
2365 parser->m_parsingStatus.parsing = XML_SUSPENDED; in XML_StopParser()
2367 parser->m_parsingStatus.parsing = XML_FINISHED; in XML_StopParser()
2376 XML_ResumeParser(XML_Parser parser) { in XML_ResumeParser() argument
2379 if (parser == NULL) in XML_ResumeParser()
2381 if (parser->m_parsingStatus.parsing != XML_SUSPENDED) { in XML_ResumeParser()
2382 parser->m_errorCode = XML_ERROR_NOT_SUSPENDED; in XML_ResumeParser()
2385 parser->m_parsingStatus.parsing = XML_PARSING; in XML_ResumeParser()
2387 parser->m_errorCode = callProcessor( in XML_ResumeParser()
2388 parser, parser->m_bufferPtr, parser->m_parseEndPtr, &parser->m_bufferPtr); in XML_ResumeParser()
2390 if (parser->m_errorCode != XML_ERROR_NONE) { in XML_ResumeParser()
2391 parser->m_eventEndPtr = parser->m_eventPtr; in XML_ResumeParser()
2392 parser->m_processor = errorProcessor; in XML_ResumeParser()
2395 switch (parser->m_parsingStatus.parsing) { in XML_ResumeParser()
2401 if (parser->m_parsingStatus.finalBuffer) { in XML_ResumeParser()
2402 parser->m_parsingStatus.parsing = XML_FINISHED; in XML_ResumeParser()
2409 XmlUpdatePosition(parser->m_encoding, parser->m_positionPtr, in XML_ResumeParser()
2410 parser->m_bufferPtr, &parser->m_position); in XML_ResumeParser()
2411 parser->m_positionPtr = parser->m_bufferPtr; in XML_ResumeParser()
2416 XML_GetParsingStatus(XML_Parser parser, XML_ParsingStatus *status) { in XML_GetParsingStatus() argument
2417 if (parser == NULL) in XML_GetParsingStatus()
2420 *status = parser->m_parsingStatus; in XML_GetParsingStatus()
2424 XML_GetErrorCode(XML_Parser parser) { in XML_GetErrorCode() argument
2425 if (parser == NULL) in XML_GetErrorCode()
2427 return parser->m_errorCode; in XML_GetErrorCode()
2431 XML_GetCurrentByteIndex(XML_Parser parser) { in XML_GetCurrentByteIndex() argument
2432 if (parser == NULL) in XML_GetCurrentByteIndex()
2434 if (parser->m_eventPtr) in XML_GetCurrentByteIndex()
2435 return (XML_Index)(parser->m_parseEndByteIndex in XML_GetCurrentByteIndex()
2436 - (parser->m_parseEndPtr - parser->m_eventPtr)); in XML_GetCurrentByteIndex()
2441 XML_GetCurrentByteCount(XML_Parser parser) { in XML_GetCurrentByteCount() argument
2442 if (parser == NULL) in XML_GetCurrentByteCount()
2444 if (parser->m_eventEndPtr && parser->m_eventPtr) in XML_GetCurrentByteCount()
2445 return (int)(parser->m_eventEndPtr - parser->m_eventPtr); in XML_GetCurrentByteCount()
2450 XML_GetInputContext(XML_Parser parser, int *offset, int *size) { in XML_GetInputContext() argument
2452 if (parser == NULL) in XML_GetInputContext()
2454 if (parser->m_eventPtr && parser->m_buffer) { in XML_GetInputContext()
2456 *offset = (int)(parser->m_eventPtr - parser->m_buffer); in XML_GetInputContext()
2458 *size = (int)(parser->m_bufferEnd - parser->m_buffer); in XML_GetInputContext()
2459 return parser->m_buffer; in XML_GetInputContext()
2462 (void)parser; in XML_GetInputContext()
2470 XML_GetCurrentLineNumber(XML_Parser parser) { in XML_GetCurrentLineNumber() argument
2471 if (parser == NULL) in XML_GetCurrentLineNumber()
2473 if (parser->m_eventPtr && parser->m_eventPtr >= parser->m_positionPtr) { in XML_GetCurrentLineNumber()
2474 XmlUpdatePosition(parser->m_encoding, parser->m_positionPtr, in XML_GetCurrentLineNumber()
2475 parser->m_eventPtr, &parser->m_position); in XML_GetCurrentLineNumber()
2476 parser->m_positionPtr = parser->m_eventPtr; in XML_GetCurrentLineNumber()
2478 return parser->m_position.lineNumber + 1; in XML_GetCurrentLineNumber()
2482 XML_GetCurrentColumnNumber(XML_Parser parser) { in XML_GetCurrentColumnNumber() argument
2483 if (parser == NULL) in XML_GetCurrentColumnNumber()
2485 if (parser->m_eventPtr && parser->m_eventPtr >= parser->m_positionPtr) { in XML_GetCurrentColumnNumber()
2486 XmlUpdatePosition(parser->m_encoding, parser->m_positionPtr, in XML_GetCurrentColumnNumber()
2487 parser->m_eventPtr, &parser->m_position); in XML_GetCurrentColumnNumber()
2488 parser->m_positionPtr = parser->m_eventPtr; in XML_GetCurrentColumnNumber()
2490 return parser->m_position.columnNumber; in XML_GetCurrentColumnNumber()
2494 XML_FreeContentModel(XML_Parser parser, XML_Content *model) { in XML_FreeContentModel() argument
2495 if (parser != NULL) in XML_FreeContentModel()
2496 FREE(parser, model); in XML_FreeContentModel()
2500 XML_MemMalloc(XML_Parser parser, size_t size) { in XML_MemMalloc() argument
2501 if (parser == NULL) in XML_MemMalloc()
2503 return MALLOC(parser, size); in XML_MemMalloc()
2507 XML_MemRealloc(XML_Parser parser, void *ptr, size_t size) { in XML_MemRealloc() argument
2508 if (parser == NULL) in XML_MemRealloc()
2510 return REALLOC(parser, ptr, size); in XML_MemRealloc()
2514 XML_MemFree(XML_Parser parser, void *ptr) { in XML_MemFree() argument
2515 if (parser != NULL) in XML_MemFree()
2516 FREE(parser, ptr); in XML_MemFree()
2520 XML_DefaultCurrent(XML_Parser parser) { in XML_DefaultCurrent() argument
2521 if (parser == NULL) in XML_DefaultCurrent()
2523 if (parser->m_defaultHandler) { in XML_DefaultCurrent()
2524 if (parser->m_openInternalEntities) in XML_DefaultCurrent()
2525 reportDefault(parser, parser->m_internalEncoding, in XML_DefaultCurrent()
2526 parser->m_openInternalEntities->internalEventPtr, in XML_DefaultCurrent()
2527 parser->m_openInternalEntities->internalEventEndPtr); in XML_DefaultCurrent()
2529 reportDefault(parser, parser->m_encoding, parser->m_eventPtr, in XML_DefaultCurrent()
2530 parser->m_eventEndPtr); in XML_DefaultCurrent()
2725 XML_Parser parser, float maximumAmplificationFactor) { in XML_SetBillionLaughsAttackProtectionMaximumAmplification() argument
2726 if ((parser == NULL) || (parser->m_parentParser != NULL) in XML_SetBillionLaughsAttackProtectionMaximumAmplification()
2731 parser->m_accounting.maximumAmplificationFactor = maximumAmplificationFactor; in XML_SetBillionLaughsAttackProtectionMaximumAmplification()
2737 XML_Parser parser, unsigned long long activationThresholdBytes) { in XML_SetBillionLaughsAttackProtectionActivationThreshold() argument
2738 if ((parser == NULL) || (parser->m_parentParser != NULL)) { in XML_SetBillionLaughsAttackProtectionActivationThreshold()
2741 parser->m_accounting.activationThresholdBytes = activationThresholdBytes; in XML_SetBillionLaughsAttackProtectionActivationThreshold()
2747 XML_SetReparseDeferralEnabled(XML_Parser parser, XML_Bool enabled) { in XML_SetReparseDeferralEnabled() argument
2748 if (parser != NULL && (enabled == XML_TRUE || enabled == XML_FALSE)) { in XML_SetReparseDeferralEnabled()
2749 parser->m_reparseDeferralEnabled = enabled; in XML_SetReparseDeferralEnabled()
2761 storeRawNames(XML_Parser parser) { in storeRawNames() argument
2762 TAG *tag = parser->m_tagStack; in storeRawNames()
2784 char *temp = (char *)REALLOC(parser, tag->buf, bufSize); in storeRawNames()
2810 contentProcessor(XML_Parser parser, const char *start, const char *end, in contentProcessor() argument
2813 parser, parser->m_parentParser ? 1 : 0, parser->m_encoding, start, end, in contentProcessor()
2814 endPtr, (XML_Bool)! parser->m_parsingStatus.finalBuffer, in contentProcessor()
2817 if (! storeRawNames(parser)) in contentProcessor()
2824 externalEntityInitProcessor(XML_Parser parser, const char *start, in externalEntityInitProcessor() argument
2826 enum XML_Error result = initializeEncoding(parser); in externalEntityInitProcessor()
2829 parser->m_processor = externalEntityInitProcessor2; in externalEntityInitProcessor()
2830 return externalEntityInitProcessor2(parser, start, end, endPtr); in externalEntityInitProcessor()
2834 externalEntityInitProcessor2(XML_Parser parser, const char *start, in externalEntityInitProcessor2() argument
2837 int tok = XmlContentTok(parser->m_encoding, start, end, &next); in externalEntityInitProcessor2()
2841 if (! accountingDiffTolerated(parser, tok, start, next, __LINE__, in externalEntityInitProcessor2()
2843 accountingOnAbort(parser); in externalEntityInitProcessor2()
2853 if (next == end && ! parser->m_parsingStatus.finalBuffer) { in externalEntityInitProcessor2()
2860 if (! parser->m_parsingStatus.finalBuffer) { in externalEntityInitProcessor2()
2864 parser->m_eventPtr = start; in externalEntityInitProcessor2()
2867 if (! parser->m_parsingStatus.finalBuffer) { in externalEntityInitProcessor2()
2871 parser->m_eventPtr = start; in externalEntityInitProcessor2()
2874 parser->m_processor = externalEntityInitProcessor3; in externalEntityInitProcessor2()
2875 return externalEntityInitProcessor3(parser, start, end, endPtr); in externalEntityInitProcessor2()
2879 externalEntityInitProcessor3(XML_Parser parser, const char *start, in externalEntityInitProcessor3() argument
2883 parser->m_eventPtr = start; in externalEntityInitProcessor3()
2884 tok = XmlContentTok(parser->m_encoding, start, end, &next); in externalEntityInitProcessor3()
2889 parser->m_eventEndPtr = next; in externalEntityInitProcessor3()
2894 result = processXmlDecl(parser, 1, start, next); in externalEntityInitProcessor3()
2897 switch (parser->m_parsingStatus.parsing) { in externalEntityInitProcessor3()
2904 if (parser->m_reenter) { in externalEntityInitProcessor3()
2913 if (! parser->m_parsingStatus.finalBuffer) { in externalEntityInitProcessor3()
2919 if (! parser->m_parsingStatus.finalBuffer) { in externalEntityInitProcessor3()
2925 parser->m_processor = externalEntityContentProcessor; in externalEntityInitProcessor3()
2926 parser->m_tagLevel = 1; in externalEntityInitProcessor3()
2927 return externalEntityContentProcessor(parser, start, end, endPtr); in externalEntityInitProcessor3()
2931 externalEntityContentProcessor(XML_Parser parser, const char *start, in externalEntityContentProcessor() argument
2934 = doContent(parser, 1, parser->m_encoding, start, end, endPtr, in externalEntityContentProcessor()
2935 (XML_Bool)! parser->m_parsingStatus.finalBuffer, in externalEntityContentProcessor()
2938 if (! storeRawNames(parser)) in externalEntityContentProcessor()
2945 doContent(XML_Parser parser, int startTagLevel, const ENCODING *enc, in doContent() argument
2949 DTD *const dtd = parser->m_dtd; in doContent()
2953 if (enc == parser->m_encoding) { in doContent()
2954 eventPP = &parser->m_eventPtr; in doContent()
2955 eventEndPP = &parser->m_eventEndPtr; in doContent()
2957 eventPP = &(parser->m_openInternalEntities->internalEventPtr); in doContent()
2958 eventEndPP = &(parser->m_openInternalEntities->internalEventEndPtr); in doContent()
2970 if (! accountingDiffTolerated(parser, tok, s, accountAfter, __LINE__, in doContent()
2972 accountingOnAbort(parser); in doContent()
2984 if (parser->m_characterDataHandler) { in doContent()
2986 parser->m_characterDataHandler(parser->m_handlerArg, &c, 1); in doContent()
2987 } else if (parser->m_defaultHandler) in doContent()
2988 reportDefault(parser, enc, s, end); in doContent()
2994 if (parser->m_tagLevel != startTagLevel) in doContent()
3004 if (parser->m_tagLevel != startTagLevel) in doContent()
3035 accountingDiffTolerated(parser, tok, (char *)&ch, in doContent()
3039 if (parser->m_characterDataHandler) in doContent()
3040 parser->m_characterDataHandler(parser->m_handlerArg, &ch, 1); in doContent()
3041 else if (parser->m_defaultHandler) in doContent()
3042 reportDefault(parser, enc, s, next); in doContent()
3049 entity = (ENTITY *)lookup(parser, &dtd->generalEntities, name, 0); in doContent()
3061 if (parser->m_skippedEntityHandler) in doContent()
3062 parser->m_skippedEntityHandler(parser->m_handlerArg, name, 0); in doContent()
3063 else if (parser->m_defaultHandler) in doContent()
3064 reportDefault(parser, enc, s, next); in doContent()
3073 if (! parser->m_defaultExpandInternalEntities) { in doContent()
3074 if (parser->m_skippedEntityHandler) in doContent()
3075 parser->m_skippedEntityHandler(parser->m_handlerArg, entity->name, in doContent()
3077 else if (parser->m_defaultHandler) in doContent()
3078 reportDefault(parser, enc, s, next); in doContent()
3081 result = processEntity(parser, entity, XML_FALSE, ENTITY_INTERNAL); in doContent()
3084 } else if (parser->m_externalEntityRefHandler) { in doContent()
3087 context = getContext(parser); in doContent()
3091 if (! parser->m_externalEntityRefHandler( in doContent()
3092 parser->m_externalEntityRefHandlerArg, context, entity->base, in doContent()
3095 poolDiscard(&parser->m_tempPool); in doContent()
3096 } else if (parser->m_defaultHandler) in doContent()
3097 reportDefault(parser, enc, s, next); in doContent()
3106 if (parser->m_freeTagList) { in doContent()
3107 tag = parser->m_freeTagList; in doContent()
3108 parser->m_freeTagList = parser->m_freeTagList->parent; in doContent()
3110 tag = (TAG *)MALLOC(parser, sizeof(TAG)); in doContent()
3113 tag->buf = (char *)MALLOC(parser, INIT_TAG_BUF_SIZE); in doContent()
3115 FREE(parser, tag); in doContent()
3121 tag->parent = parser->m_tagStack; in doContent()
3122 parser->m_tagStack = tag; in doContent()
3127 ++parser->m_tagLevel; in doContent()
3146 char *temp = (char *)REALLOC(parser, tag->buf, bufSize); in doContent()
3158 = storeAtts(parser, enc, s, &(tag->name), &(tag->bindings), account); in doContent()
3161 if (parser->m_startElementHandler) in doContent()
3162 parser->m_startElementHandler(parser->m_handlerArg, tag->name.str, in doContent()
3163 (const XML_Char **)parser->m_atts); in doContent()
3164 else if (parser->m_defaultHandler) in doContent()
3165 reportDefault(parser, enc, s, next); in doContent()
3166 poolClear(&parser->m_tempPool); in doContent()
3177 name.str = poolStoreString(&parser->m_tempPool, enc, rawName, in doContent()
3181 poolFinish(&parser->m_tempPool); in doContent()
3182 result = storeAtts(parser, enc, s, &name, &bindings, in doContent()
3185 freeBindings(parser, bindings); in doContent()
3188 poolFinish(&parser->m_tempPool); in doContent()
3189 if (parser->m_startElementHandler) { in doContent()
3190 parser->m_startElementHandler(parser->m_handlerArg, name.str, in doContent()
3191 (const XML_Char **)parser->m_atts); in doContent()
3194 if (parser->m_endElementHandler) { in doContent()
3195 if (parser->m_startElementHandler) in doContent()
3197 parser->m_endElementHandler(parser->m_handlerArg, name.str); in doContent()
3200 if (noElmHandlers && parser->m_defaultHandler) in doContent()
3201 reportDefault(parser, enc, s, next); in doContent()
3202 poolClear(&parser->m_tempPool); in doContent()
3203 freeBindings(parser, bindings); in doContent()
3205 if ((parser->m_tagLevel == 0) in doContent()
3206 && (parser->m_parsingStatus.parsing != XML_FINISHED)) { in doContent()
3207 if (parser->m_parsingStatus.parsing == XML_SUSPENDED in doContent()
3208 || (parser->m_parsingStatus.parsing == XML_PARSING in doContent()
3209 && parser->m_reenter)) in doContent()
3210 parser->m_processor = epilogProcessor; in doContent()
3212 return epilogProcessor(parser, next, end, nextPtr); in doContent()
3216 if (parser->m_tagLevel == startTagLevel) in doContent()
3221 TAG *tag = parser->m_tagStack; in doContent()
3229 parser->m_tagStack = tag->parent; in doContent()
3230 tag->parent = parser->m_freeTagList; in doContent()
3231 parser->m_freeTagList = tag; in doContent()
3232 --parser->m_tagLevel; in doContent()
3233 if (parser->m_endElementHandler) { in doContent()
3238 if (parser->m_ns && localPart) { in doContent()
3248 if (parser->m_ns_triplets && prefix) { in doContent()
3249 *uri++ = parser->m_namespaceSeparator; in doContent()
3255 parser->m_endElementHandler(parser->m_handlerArg, tag->name.str); in doContent()
3256 } else if (parser->m_defaultHandler) in doContent()
3257 reportDefault(parser, enc, s, next); in doContent()
3260 if (parser->m_endNamespaceDeclHandler) in doContent()
3261 parser->m_endNamespaceDeclHandler(parser->m_handlerArg, in doContent()
3264 b->nextTagBinding = parser->m_freeBindingList; in doContent()
3265 parser->m_freeBindingList = b; in doContent()
3268 if ((parser->m_tagLevel == 0) in doContent()
3269 && (parser->m_parsingStatus.parsing != XML_FINISHED)) { in doContent()
3270 if (parser->m_parsingStatus.parsing == XML_SUSPENDED in doContent()
3271 || (parser->m_parsingStatus.parsing == XML_PARSING in doContent()
3272 && parser->m_reenter)) in doContent()
3273 parser->m_processor = epilogProcessor; in doContent()
3275 return epilogProcessor(parser, next, end, nextPtr); in doContent()
3283 if (parser->m_characterDataHandler) { in doContent()
3285 parser->m_characterDataHandler(parser->m_handlerArg, buf, in doContent()
3287 } else if (parser->m_defaultHandler) in doContent()
3288 reportDefault(parser, enc, s, next); in doContent()
3293 if (parser->m_characterDataHandler) { in doContent()
3295 parser->m_characterDataHandler(parser->m_handlerArg, &c, 1); in doContent()
3296 } else if (parser->m_defaultHandler) in doContent()
3297 reportDefault(parser, enc, s, next); in doContent()
3301 if (parser->m_startCdataSectionHandler) in doContent()
3302 parser->m_startCdataSectionHandler(parser->m_handlerArg); in doContent()
3316 else if ((0) && parser->m_characterDataHandler) in doContent()
3317 parser->m_characterDataHandler(parser->m_handlerArg, parser->m_dataBuf, in doContent()
3320 else if (parser->m_defaultHandler) in doContent()
3321 reportDefault(parser, enc, s, next); in doContent()
3323 = doCdataSection(parser, enc, &next, end, nextPtr, haveMore, account); in doContent()
3327 parser->m_processor = cdataSectionProcessor; in doContent()
3336 if (parser->m_characterDataHandler) { in doContent()
3338 ICHAR *dataPtr = (ICHAR *)parser->m_dataBuf; in doContent()
3339 XmlConvert(enc, &s, end, &dataPtr, (ICHAR *)parser->m_dataBufEnd); in doContent()
3340 parser->m_characterDataHandler( in doContent()
3341 parser->m_handlerArg, parser->m_dataBuf, in doContent()
3342 (int)(dataPtr - (ICHAR *)parser->m_dataBuf)); in doContent()
3344 parser->m_characterDataHandler( in doContent()
3345 parser->m_handlerArg, (const XML_Char *)s, in doContent()
3347 } else if (parser->m_defaultHandler) in doContent()
3348 reportDefault(parser, enc, s, end); in doContent()
3356 if (parser->m_tagLevel != startTagLevel) { in doContent()
3363 XML_CharacterDataHandler charDataHandler = parser->m_characterDataHandler; in doContent()
3367 ICHAR *dataPtr = (ICHAR *)parser->m_dataBuf; in doContent()
3369 enc, &s, next, &dataPtr, (ICHAR *)parser->m_dataBufEnd); in doContent()
3371 charDataHandler(parser->m_handlerArg, parser->m_dataBuf, in doContent()
3372 (int)(dataPtr - (ICHAR *)parser->m_dataBuf)); in doContent()
3379 charDataHandler(parser->m_handlerArg, (const XML_Char *)s, in doContent()
3381 } else if (parser->m_defaultHandler) in doContent()
3382 reportDefault(parser, enc, s, next); in doContent()
3385 if (! reportProcessingInstruction(parser, enc, s, next)) in doContent()
3389 if (! reportComment(parser, enc, s, next)) in doContent()
3400 if (parser->m_defaultHandler) in doContent()
3401 reportDefault(parser, enc, s, next); in doContent()
3405 switch (parser->m_parsingStatus.parsing) { in doContent()
3414 if (parser->m_reenter) { in doContent()
3431 freeBindings(XML_Parser parser, BINDING *bindings) { in freeBindings() argument
3438 if (parser->m_endNamespaceDeclHandler) in freeBindings()
3439 parser->m_endNamespaceDeclHandler(parser->m_handlerArg, b->prefix->name); in freeBindings()
3442 b->nextTagBinding = parser->m_freeBindingList; in freeBindings()
3443 parser->m_freeBindingList = b; in freeBindings()
3459 storeAtts(XML_Parser parser, const ENCODING *enc, const char *attStr, in storeAtts() argument
3462 DTD *const dtd = parser->m_dtd; /* save one level of indirection */ in storeAtts()
3477 = (ELEMENT_TYPE *)lookup(parser, &dtd->elementTypes, tagNamePtr->str, 0); in storeAtts()
3482 elementType = (ELEMENT_TYPE *)lookup(parser, &dtd->elementTypes, name, in storeAtts()
3486 if (parser->m_ns && ! setElementTypePrefix(parser, elementType)) in storeAtts()
3492 n = XmlGetAttributes(enc, attStr, parser->m_attsSize, parser->m_atts); in storeAtts()
3499 if (n + nDefaultAtts > parser->m_attsSize) { in storeAtts()
3500 int oldAttsSize = parser->m_attsSize; in storeAtts()
3512 parser->m_attsSize = n + nDefaultAtts + INIT_ATTS_SIZE; in storeAtts()
3519 if ((unsigned)parser->m_attsSize > (size_t)(-1) / sizeof(ATTRIBUTE)) { in storeAtts()
3520 parser->m_attsSize = oldAttsSize; in storeAtts()
3525 temp = (ATTRIBUTE *)REALLOC(parser, (void *)parser->m_atts, in storeAtts()
3526 parser->m_attsSize * sizeof(ATTRIBUTE)); in storeAtts()
3528 parser->m_attsSize = oldAttsSize; in storeAtts()
3531 parser->m_atts = temp; in storeAtts()
3538 if ((unsigned)parser->m_attsSize > (size_t)(-1) / sizeof(XML_AttrInfo)) { in storeAtts()
3539 parser->m_attsSize = oldAttsSize; in storeAtts()
3544 temp2 = (XML_AttrInfo *)REALLOC(parser, (void *)parser->m_attInfo, in storeAtts()
3545 parser->m_attsSize * sizeof(XML_AttrInfo)); in storeAtts()
3547 parser->m_attsSize = oldAttsSize; in storeAtts()
3550 parser->m_attInfo = temp2; in storeAtts()
3553 XmlGetAttributes(enc, attStr, n, parser->m_atts); in storeAtts()
3556 appAtts = (const XML_Char **)parser->m_atts; in storeAtts()
3558 ATTRIBUTE *currAtt = &parser->m_atts[i]; in storeAtts()
3560 XML_AttrInfo *currAttInfo = &parser->m_attInfo[i]; in storeAtts()
3564 = getAttributeId(parser, enc, currAtt->name, in storeAtts()
3570 = parser->m_parseEndByteIndex - (parser->m_parseEndPtr - currAtt->name); in storeAtts()
3573 currAttInfo->valueStart = parser->m_parseEndByteIndex in storeAtts()
3574 - (parser->m_parseEndPtr - currAtt->valuePtr); in storeAtts()
3575 currAttInfo->valueEnd = parser->m_parseEndByteIndex in storeAtts()
3576 - (parser->m_parseEndPtr - currAtt->valueEnd); in storeAtts()
3583 if (enc == parser->m_encoding) in storeAtts()
3584 parser->m_eventPtr = parser->m_atts[i].name; in storeAtts()
3589 if (! parser->m_atts[i].normalized) { in storeAtts()
3606 parser, enc, isCdata, parser->m_atts[i].valuePtr, in storeAtts()
3607 parser->m_atts[i].valueEnd, &parser->m_tempPool, account); in storeAtts()
3610 appAtts[attIndex] = poolStart(&parser->m_tempPool); in storeAtts()
3611 poolFinish(&parser->m_tempPool); in storeAtts()
3614 appAtts[attIndex] = poolStoreString(&parser->m_tempPool, enc, in storeAtts()
3615 parser->m_atts[i].valuePtr, in storeAtts()
3616 parser->m_atts[i].valueEnd); in storeAtts()
3619 poolFinish(&parser->m_tempPool); in storeAtts()
3625 enum XML_Error result = addBinding(parser, attId->prefix, attId, in storeAtts()
3641 parser->m_nSpecifiedAtts = attIndex; in storeAtts()
3645 parser->m_idAttIndex = i; in storeAtts()
3649 parser->m_idAttIndex = -1; in storeAtts()
3657 enum XML_Error result = addBinding(parser, da->id->prefix, da->id, in storeAtts()
3681 unsigned long version = parser->m_nsAttsVersion; in storeAtts()
3684 if (parser->m_nsAttsPower >= sizeof(unsigned int) * 8 /* bits per byte */) { in storeAtts()
3688 unsigned int nsAttsSize = 1u << parser->m_nsAttsPower; in storeAtts()
3689 unsigned char oldNsAttsPower = parser->m_nsAttsPower; in storeAtts()
3692 >> parser->m_nsAttsPower) { /* true for m_nsAttsPower = 0 */ in storeAtts()
3695 while (nPrefixes >> parser->m_nsAttsPower++) in storeAtts()
3697 if (parser->m_nsAttsPower < 3) in storeAtts()
3698 parser->m_nsAttsPower = 3; in storeAtts()
3701 if (parser->m_nsAttsPower >= sizeof(nsAttsSize) * 8 /* bits per byte */) { in storeAtts()
3703 parser->m_nsAttsPower = oldNsAttsPower; in storeAtts()
3707 nsAttsSize = 1u << parser->m_nsAttsPower; in storeAtts()
3716 parser->m_nsAttsPower = oldNsAttsPower; in storeAtts()
3721 temp = (NS_ATT *)REALLOC(parser, parser->m_nsAtts, in storeAtts()
3725 parser->m_nsAttsPower = oldNsAttsPower; in storeAtts()
3728 parser->m_nsAtts = temp; in storeAtts()
3735 parser->m_nsAtts[--j].version = version; in storeAtts()
3737 parser->m_nsAttsVersion = --version; in storeAtts()
3749 copy_salt_to_sipkey(parser, &sip_key); in storeAtts()
3753 id = (ATTRIBUTE_ID *)lookup(parser, &dtd->attributeIds, s, 0); in storeAtts()
3777 if (! poolAppendChar(&parser->m_tempPool, c)) in storeAtts()
3789 if (! poolAppendChar(&parser->m_tempPool, *s)) in storeAtts()
3801 while (parser->m_nsAtts[j].version == version) { in storeAtts()
3803 if (uriHash == parser->m_nsAtts[j].hash) { in storeAtts()
3804 const XML_Char *s1 = poolStart(&parser->m_tempPool); in storeAtts()
3805 const XML_Char *s2 = parser->m_nsAtts[j].uriName; in storeAtts()
3813 step = PROBE_STEP(uriHash, mask, parser->m_nsAttsPower); in storeAtts()
3818 if (parser->m_ns_triplets) { /* append namespace separator and prefix */ in storeAtts()
3819 parser->m_tempPool.ptr[-1] = parser->m_namespaceSeparator; in storeAtts()
3822 if (! poolAppendChar(&parser->m_tempPool, *s)) in storeAtts()
3828 s = poolStart(&parser->m_tempPool); in storeAtts()
3829 poolFinish(&parser->m_tempPool); in storeAtts()
3833 parser->m_nsAtts[j].version = version; in storeAtts()
3834 parser->m_nsAtts[j].hash = uriHash; in storeAtts()
3835 parser->m_nsAtts[j].uriName = s; in storeAtts()
3851 if (! parser->m_ns) in storeAtts()
3868 if (parser->m_ns_triplets && binding->prefix->name) { in storeAtts()
3903 uri = (XML_Char *)MALLOC(parser, (n + EXPAND_SPARE) * sizeof(XML_Char)); in storeAtts()
3908 for (p = parser->m_tagStack; p; p = p->parent) in storeAtts()
3911 FREE(parser, binding->uri); in storeAtts()
3920 *uri = parser->m_namespaceSeparator; /* replace null terminator */ in storeAtts()
4042 addBinding(XML_Parser parser, PREFIX *prefix, const ATTRIBUTE_ID *attId, in addBinding() argument
4114 if (parser->m_ns && (uri[len] == parser->m_namespaceSeparator) in addBinding()
4129 if (parser->m_namespaceSeparator) in addBinding()
4131 if (parser->m_freeBindingList) { in addBinding()
4132 b = parser->m_freeBindingList; in addBinding()
4150 parser, b->uri, sizeof(XML_Char) * (len + EXPAND_SPARE)); in addBinding()
4156 parser->m_freeBindingList = b->nextTagBinding; in addBinding()
4158 b = (BINDING *)MALLOC(parser, sizeof(BINDING)); in addBinding()
4177 = (XML_Char *)MALLOC(parser, sizeof(XML_Char) * (len + EXPAND_SPARE)); in addBinding()
4179 FREE(parser, b); in addBinding()
4186 if (parser->m_namespaceSeparator) in addBinding()
4187 b->uri[len - 1] = parser->m_namespaceSeparator; in addBinding()
4192 if (*uri == XML_T('\0') && prefix == &parser->m_dtd->defaultPrefix) in addBinding()
4199 if (attId && parser->m_startNamespaceDeclHandler) in addBinding()
4200 parser->m_startNamespaceDeclHandler(parser->m_handlerArg, prefix->name, in addBinding()
4209 cdataSectionProcessor(XML_Parser parser, const char *start, const char *end, in cdataSectionProcessor() argument
4212 parser, parser->m_encoding, &start, end, endPtr, in cdataSectionProcessor()
4213 (XML_Bool)! parser->m_parsingStatus.finalBuffer, XML_ACCOUNT_DIRECT); in cdataSectionProcessor()
4217 if (parser->m_parentParser) { /* we are parsing an external entity */ in cdataSectionProcessor()
4218 parser->m_processor = externalEntityContentProcessor; in cdataSectionProcessor()
4219 return externalEntityContentProcessor(parser, start, end, endPtr); in cdataSectionProcessor()
4221 parser->m_processor = contentProcessor; in cdataSectionProcessor()
4222 return contentProcessor(parser, start, end, endPtr); in cdataSectionProcessor()
4232 doCdataSection(XML_Parser parser, const ENCODING *enc, const char **startPtr, in doCdataSection() argument
4238 if (enc == parser->m_encoding) { in doCdataSection()
4239 eventPP = &parser->m_eventPtr; in doCdataSection()
4241 eventEndPP = &parser->m_eventEndPtr; in doCdataSection()
4243 eventPP = &(parser->m_openInternalEntities->internalEventPtr); in doCdataSection()
4244 eventEndPP = &(parser->m_openInternalEntities->internalEventEndPtr); in doCdataSection()
4253 if (! accountingDiffTolerated(parser, tok, s, next, __LINE__, account)) { in doCdataSection()
4254 accountingOnAbort(parser); in doCdataSection()
4263 if (parser->m_endCdataSectionHandler) in doCdataSection()
4264 parser->m_endCdataSectionHandler(parser->m_handlerArg); in doCdataSection()
4267 else if ((0) && parser->m_characterDataHandler) in doCdataSection()
4268 parser->m_characterDataHandler(parser->m_handlerArg, parser->m_dataBuf, in doCdataSection()
4271 else if (parser->m_defaultHandler) in doCdataSection()
4272 reportDefault(parser, enc, s, next); in doCdataSection()
4275 if (parser->m_parsingStatus.parsing == XML_FINISHED) in doCdataSection()
4280 if (parser->m_characterDataHandler) { in doCdataSection()
4282 parser->m_characterDataHandler(parser->m_handlerArg, &c, 1); in doCdataSection()
4283 } else if (parser->m_defaultHandler) in doCdataSection()
4284 reportDefault(parser, enc, s, next); in doCdataSection()
4287 XML_CharacterDataHandler charDataHandler = parser->m_characterDataHandler; in doCdataSection()
4291 ICHAR *dataPtr = (ICHAR *)parser->m_dataBuf; in doCdataSection()
4293 enc, &s, next, &dataPtr, (ICHAR *)parser->m_dataBufEnd); in doCdataSection()
4295 charDataHandler(parser->m_handlerArg, parser->m_dataBuf, in doCdataSection()
4296 (int)(dataPtr - (ICHAR *)parser->m_dataBuf)); in doCdataSection()
4303 charDataHandler(parser->m_handlerArg, (const XML_Char *)s, in doCdataSection()
4305 } else if (parser->m_defaultHandler) in doCdataSection()
4306 reportDefault(parser, enc, s, next); in doCdataSection()
4337 switch (parser->m_parsingStatus.parsing) { in doCdataSection()
4346 if (parser->m_reenter) { in doCdataSection()
4363 ignoreSectionProcessor(XML_Parser parser, const char *start, const char *end, in ignoreSectionProcessor() argument
4366 = doIgnoreSection(parser, parser->m_encoding, &start, end, endPtr, in ignoreSectionProcessor()
4367 (XML_Bool)! parser->m_parsingStatus.finalBuffer); in ignoreSectionProcessor()
4371 parser->m_processor = prologProcessor; in ignoreSectionProcessor()
4372 return prologProcessor(parser, start, end, endPtr); in ignoreSectionProcessor()
4381 doIgnoreSection(XML_Parser parser, const ENCODING *enc, const char **startPtr, in doIgnoreSection() argument
4388 if (enc == parser->m_encoding) { in doIgnoreSection()
4389 eventPP = &parser->m_eventPtr; in doIgnoreSection()
4391 eventEndPP = &parser->m_eventEndPtr; in doIgnoreSection()
4404 eventPP = &(parser->m_openInternalEntities->internalEventPtr); in doIgnoreSection()
4405 eventEndPP = &(parser->m_openInternalEntities->internalEventEndPtr); in doIgnoreSection()
4412 if (! accountingDiffTolerated(parser, tok, s, next, __LINE__, in doIgnoreSection()
4414 accountingOnAbort(parser); in doIgnoreSection()
4421 if (parser->m_defaultHandler) in doIgnoreSection()
4422 reportDefault(parser, enc, s, next); in doIgnoreSection()
4425 if (parser->m_parsingStatus.parsing == XML_FINISHED) in doIgnoreSection()
4463 initializeEncoding(XML_Parser parser) { in initializeEncoding() argument
4468 if (! parser->m_protocolEncodingName) in initializeEncoding()
4472 for (i = 0; parser->m_protocolEncodingName[i]; i++) { in initializeEncoding()
4474 || (parser->m_protocolEncodingName[i] & ~0x7f) != 0) { in initializeEncoding()
4478 encodingBuf[i] = (char)parser->m_protocolEncodingName[i]; in initializeEncoding()
4484 s = parser->m_protocolEncodingName; in initializeEncoding()
4486 if ((parser->m_ns ? XmlInitEncodingNS : XmlInitEncoding)( in initializeEncoding()
4487 &parser->m_initEncoding, &parser->m_encoding, s)) in initializeEncoding()
4489 return handleUnknownEncoding(parser, parser->m_protocolEncodingName); in initializeEncoding()
4493 processXmlDecl(XML_Parser parser, int isGeneralTextEntity, const char *s, in processXmlDecl() argument
4504 if (! accountingDiffTolerated(parser, XML_TOK_XML_DECL, s, next, __LINE__, in processXmlDecl()
4506 accountingOnAbort(parser); in processXmlDecl()
4511 if (! (parser->m_ns ? XmlParseXmlDeclNS : XmlParseXmlDecl)( in processXmlDecl()
4512 isGeneralTextEntity, parser->m_encoding, s, next, &parser->m_eventPtr, in processXmlDecl()
4520 parser->m_dtd->standalone = XML_TRUE; in processXmlDecl()
4522 if (parser->m_paramEntityParsing in processXmlDecl()
4524 parser->m_paramEntityParsing = XML_PARAM_ENTITY_PARSING_NEVER; in processXmlDecl()
4527 if (parser->m_xmlDeclHandler) { in processXmlDecl()
4530 &parser->m_temp2Pool, parser->m_encoding, encodingName, in processXmlDecl()
4531 encodingName + XmlNameLength(parser->m_encoding, encodingName)); in processXmlDecl()
4534 poolFinish(&parser->m_temp2Pool); in processXmlDecl()
4538 = poolStoreString(&parser->m_temp2Pool, parser->m_encoding, version, in processXmlDecl()
4539 versionend - parser->m_encoding->minBytesPerChar); in processXmlDecl()
4543 parser->m_xmlDeclHandler(parser->m_handlerArg, storedversion, storedEncName, in processXmlDecl()
4545 } else if (parser->m_defaultHandler) in processXmlDecl()
4546 reportDefault(parser, parser->m_encoding, s, next); in processXmlDecl()
4547 if (parser->m_protocolEncodingName == NULL) { in processXmlDecl()
4554 if (newEncoding->minBytesPerChar != parser->m_encoding->minBytesPerChar in processXmlDecl()
4556 && newEncoding != parser->m_encoding)) { in processXmlDecl()
4557 parser->m_eventPtr = encodingName; in processXmlDecl()
4560 parser->m_encoding = newEncoding; in processXmlDecl()
4565 &parser->m_temp2Pool, parser->m_encoding, encodingName, in processXmlDecl()
4566 encodingName + XmlNameLength(parser->m_encoding, encodingName)); in processXmlDecl()
4570 result = handleUnknownEncoding(parser, storedEncName); in processXmlDecl()
4571 poolClear(&parser->m_temp2Pool); in processXmlDecl()
4573 parser->m_eventPtr = encodingName; in processXmlDecl()
4579 poolClear(&parser->m_temp2Pool); in processXmlDecl()
4585 handleUnknownEncoding(XML_Parser parser, const XML_Char *encodingName) { in handleUnknownEncoding() argument
4586 if (parser->m_unknownEncodingHandler) { in handleUnknownEncoding()
4594 if (parser->m_unknownEncodingHandler(parser->m_unknownEncodingHandlerData, in handleUnknownEncoding()
4597 parser->m_unknownEncodingMem = MALLOC(parser, XmlSizeOfUnknownEncoding()); in handleUnknownEncoding()
4598 if (! parser->m_unknownEncodingMem) { in handleUnknownEncoding()
4603 enc = (parser->m_ns ? XmlInitUnknownEncodingNS : XmlInitUnknownEncoding)( in handleUnknownEncoding()
4604 parser->m_unknownEncodingMem, info.map, info.convert, info.data); in handleUnknownEncoding()
4606 parser->m_unknownEncodingData = info.data; in handleUnknownEncoding()
4607 parser->m_unknownEncodingRelease = info.release; in handleUnknownEncoding()
4608 parser->m_encoding = enc; in handleUnknownEncoding()
4619 prologInitProcessor(XML_Parser parser, const char *s, const char *end, in prologInitProcessor() argument
4621 enum XML_Error result = initializeEncoding(parser); in prologInitProcessor()
4624 parser->m_processor = prologProcessor; in prologInitProcessor()
4625 return prologProcessor(parser, s, end, nextPtr); in prologInitProcessor()
4631 externalParEntInitProcessor(XML_Parser parser, const char *s, const char *end, in externalParEntInitProcessor() argument
4633 enum XML_Error result = initializeEncoding(parser); in externalParEntInitProcessor()
4639 parser->m_dtd->paramEntityRead = XML_TRUE; in externalParEntInitProcessor()
4641 if (parser->m_prologState.inEntityValue) { in externalParEntInitProcessor()
4642 parser->m_processor = entityValueInitProcessor; in externalParEntInitProcessor()
4643 return entityValueInitProcessor(parser, s, end, nextPtr); in externalParEntInitProcessor()
4645 parser->m_processor = externalParEntProcessor; in externalParEntInitProcessor()
4646 return externalParEntProcessor(parser, s, end, nextPtr); in externalParEntInitProcessor()
4651 entityValueInitProcessor(XML_Parser parser, const char *s, const char *end, in entityValueInitProcessor() argument
4656 parser->m_eventPtr = start; in entityValueInitProcessor()
4659 tok = XmlPrologTok(parser->m_encoding, start, end, &next); in entityValueInitProcessor()
4664 parser->m_eventEndPtr = next; in entityValueInitProcessor()
4666 if (! parser->m_parsingStatus.finalBuffer && tok != XML_TOK_INVALID) { in entityValueInitProcessor()
4682 return storeEntityValue(parser, parser->m_encoding, s, end, in entityValueInitProcessor()
4686 result = processXmlDecl(parser, 0, start, next); in entityValueInitProcessor()
4694 if (parser->m_parsingStatus.parsing == XML_FINISHED) in entityValueInitProcessor()
4698 parser->m_processor = entityValueProcessor; in entityValueInitProcessor()
4699 return entityValueProcessor(parser, next, end, nextPtr); in entityValueInitProcessor()
4711 if (! accountingDiffTolerated(parser, tok, s, next, __LINE__, in entityValueInitProcessor()
4713 accountingOnAbort(parser); in entityValueInitProcessor()
4730 parser->m_eventPtr = start; in entityValueInitProcessor()
4735 externalParEntProcessor(XML_Parser parser, const char *s, const char *end, in externalParEntProcessor() argument
4740 tok = XmlPrologTok(parser->m_encoding, s, end, &next); in externalParEntProcessor()
4742 if (! parser->m_parsingStatus.finalBuffer && tok != XML_TOK_INVALID) { in externalParEntProcessor()
4764 if (! accountingDiffTolerated(parser, tok, s, next, __LINE__, in externalParEntProcessor()
4766 accountingOnAbort(parser); in externalParEntProcessor()
4771 tok = XmlPrologTok(parser->m_encoding, s, end, &next); in externalParEntProcessor()
4774 parser->m_processor = prologProcessor; in externalParEntProcessor()
4775 return doProlog(parser, parser->m_encoding, s, end, tok, next, nextPtr, in externalParEntProcessor()
4776 (XML_Bool)! parser->m_parsingStatus.finalBuffer, XML_TRUE, in externalParEntProcessor()
4781 entityValueProcessor(XML_Parser parser, const char *s, const char *end, in entityValueProcessor() argument
4785 const ENCODING *enc = parser->m_encoding; in entityValueProcessor()
4794 if (! parser->m_parsingStatus.finalBuffer && tok != XML_TOK_INVALID) { in entityValueProcessor()
4810 return storeEntityValue(parser, enc, s, end, XML_ACCOUNT_DIRECT, NULL); in entityValueProcessor()
4819 prologProcessor(XML_Parser parser, const char *s, const char *end, in prologProcessor() argument
4822 int tok = XmlPrologTok(parser->m_encoding, s, end, &next); in prologProcessor()
4823 return doProlog(parser, parser->m_encoding, s, end, tok, next, nextPtr, in prologProcessor()
4824 (XML_Bool)! parser->m_parsingStatus.finalBuffer, XML_TRUE, in prologProcessor()
4829 doProlog(XML_Parser parser, const ENCODING *enc, const char *s, const char *end, in doProlog() argument
4863 DTD *const dtd = parser->m_dtd; in doProlog()
4869 if (enc == parser->m_encoding) { in doProlog()
4870 eventPP = &parser->m_eventPtr; in doProlog()
4871 eventEndPP = &parser->m_eventEndPtr; in doProlog()
4873 eventPP = &(parser->m_openInternalEntities->internalEventPtr); in doProlog()
4874 eventEndPP = &(parser->m_openInternalEntities->internalEventEndPtr); in doProlog()
4901 if (enc != parser->m_encoding in doProlog()
4902 && ! parser->m_openInternalEntities->betweenDecl) { in doProlog()
4910 if (parser->m_isParamEntity || enc != parser->m_encoding) { in doProlog()
4911 if (XmlTokenRole(&parser->m_prologState, XML_TOK_NONE, end, end, enc) in doProlog()
4925 role = XmlTokenRole(&parser->m_prologState, tok, s, next, enc); in doProlog()
4935 if (! accountingDiffTolerated(parser, tok, s, next, __LINE__, account)) { in doProlog()
4936 accountingOnAbort(parser); in doProlog()
4943 enum XML_Error result = processXmlDecl(parser, 0, s, next); in doProlog()
4946 enc = parser->m_encoding; in doProlog()
4950 if (parser->m_startDoctypeDeclHandler) { in doProlog()
4951 parser->m_doctypeName in doProlog()
4952 = poolStoreString(&parser->m_tempPool, enc, s, next); in doProlog()
4953 if (! parser->m_doctypeName) in doProlog()
4955 poolFinish(&parser->m_tempPool); in doProlog()
4956 parser->m_doctypePubid = NULL; in doProlog()
4959 parser->m_doctypeSysid = NULL; /* always initialize to NULL */ in doProlog()
4962 if (parser->m_startDoctypeDeclHandler) { in doProlog()
4963 parser->m_startDoctypeDeclHandler( in doProlog()
4964 parser->m_handlerArg, parser->m_doctypeName, parser->m_doctypeSysid, in doProlog()
4965 parser->m_doctypePubid, 1); in doProlog()
4966 parser->m_doctypeName = NULL; in doProlog()
4967 poolClear(&parser->m_tempPool); in doProlog()
4973 enum XML_Error result = processXmlDecl(parser, 1, s, next); in doProlog()
4976 enc = parser->m_encoding; in doProlog()
4982 parser->m_useForeignDTD = XML_FALSE; in doProlog()
4983 parser->m_declEntity = (ENTITY *)lookup( in doProlog()
4984 parser, &dtd->paramEntities, externalSubsetName, sizeof(ENTITY)); in doProlog()
4985 if (! parser->m_declEntity) in doProlog()
4989 if (parser->m_startDoctypeDeclHandler) { in doProlog()
4993 pubId = poolStoreString(&parser->m_tempPool, enc, in doProlog()
4999 poolFinish(&parser->m_tempPool); in doProlog()
5000 parser->m_doctypePubid = pubId; in doProlog()
5009 if (dtd->keepProcessing && parser->m_declEntity) { in doProlog()
5016 parser->m_declEntity->publicId = tem; in doProlog()
5021 if (parser->m_entityDeclHandler && role == XML_ROLE_ENTITY_PUBLIC_ID) in doProlog()
5031 if (parser->m_doctypeName) { in doProlog()
5032 parser->m_startDoctypeDeclHandler( in doProlog()
5033 parser->m_handlerArg, parser->m_doctypeName, parser->m_doctypeSysid, in doProlog()
5034 parser->m_doctypePubid, 0); in doProlog()
5035 poolClear(&parser->m_tempPool); in doProlog()
5043 if (parser->m_doctypeSysid || parser->m_useForeignDTD) { in doProlog()
5046 if (parser->m_paramEntityParsing in doProlog()
5047 && parser->m_externalEntityRefHandler) { in doProlog()
5048 ENTITY *entity = (ENTITY *)lookup(parser, &dtd->paramEntities, in doProlog()
5058 if (parser->m_useForeignDTD) in doProlog()
5059 entity->base = parser->m_curBase; in doProlog()
5061 if (! parser->m_externalEntityRefHandler( in doProlog()
5062 parser->m_externalEntityRefHandlerArg, 0, entity->base, in doProlog()
5066 if (! dtd->standalone && parser->m_notStandaloneHandler in doProlog()
5067 && ! parser->m_notStandaloneHandler(parser->m_handlerArg)) in doProlog()
5073 else if (! parser->m_doctypeSysid) in doProlog()
5077 parser->m_useForeignDTD = XML_FALSE; in doProlog()
5080 if (parser->m_endDoctypeDeclHandler) { in doProlog()
5081 parser->m_endDoctypeDeclHandler(parser->m_handlerArg); in doProlog()
5090 if (parser->m_useForeignDTD) { in doProlog()
5093 if (parser->m_paramEntityParsing in doProlog()
5094 && parser->m_externalEntityRefHandler) { in doProlog()
5095 ENTITY *entity = (ENTITY *)lookup(parser, &dtd->paramEntities, in doProlog()
5099 entity->base = parser->m_curBase; in doProlog()
5101 if (! parser->m_externalEntityRefHandler( in doProlog()
5102 parser->m_externalEntityRefHandlerArg, 0, entity->base, in doProlog()
5106 if (! dtd->standalone && parser->m_notStandaloneHandler in doProlog()
5107 && ! parser->m_notStandaloneHandler(parser->m_handlerArg)) in doProlog()
5119 parser->m_processor = contentProcessor; in doProlog()
5120 return contentProcessor(parser, s, end, nextPtr); in doProlog()
5122 parser->m_declElementType = getElementType(parser, enc, s, next); in doProlog()
5123 if (! parser->m_declElementType) in doProlog()
5127 parser->m_declAttributeId = getAttributeId(parser, enc, s, next); in doProlog()
5128 if (! parser->m_declAttributeId) in doProlog()
5130 parser->m_declAttributeIsCdata = XML_FALSE; in doProlog()
5131 parser->m_declAttributeType = NULL; in doProlog()
5132 parser->m_declAttributeIsId = XML_FALSE; in doProlog()
5135 parser->m_declAttributeIsCdata = XML_TRUE; in doProlog()
5136 parser->m_declAttributeType = atypeCDATA; in doProlog()
5139 parser->m_declAttributeIsId = XML_TRUE; in doProlog()
5140 parser->m_declAttributeType = atypeID; in doProlog()
5143 parser->m_declAttributeType = atypeIDREF; in doProlog()
5146 parser->m_declAttributeType = atypeIDREFS; in doProlog()
5149 parser->m_declAttributeType = atypeENTITY; in doProlog()
5152 parser->m_declAttributeType = atypeENTITIES; in doProlog()
5155 parser->m_declAttributeType = atypeNMTOKEN; in doProlog()
5158 parser->m_declAttributeType = atypeNMTOKENS; in doProlog()
5160 if (dtd->keepProcessing && parser->m_attlistDeclHandler) in doProlog()
5165 if (dtd->keepProcessing && parser->m_attlistDeclHandler) { in doProlog()
5167 if (parser->m_declAttributeType) { in doProlog()
5173 if (! poolAppendString(&parser->m_tempPool, prefix)) in doProlog()
5175 if (! poolAppend(&parser->m_tempPool, enc, s, next)) in doProlog()
5177 parser->m_declAttributeType = parser->m_tempPool.start; in doProlog()
5184 if (! defineAttribute(parser->m_declElementType, in doProlog()
5185 parser->m_declAttributeId, in doProlog()
5186 parser->m_declAttributeIsCdata, in doProlog()
5187 parser->m_declAttributeIsId, 0, parser)) in doProlog()
5189 if (parser->m_attlistDeclHandler && parser->m_declAttributeType) { in doProlog()
5190 if (*parser->m_declAttributeType == XML_T(ASCII_LPAREN) in doProlog()
5191 || (*parser->m_declAttributeType == XML_T(ASCII_N) in doProlog()
5192 && parser->m_declAttributeType[1] == XML_T(ASCII_O))) { in doProlog()
5194 if (! poolAppendChar(&parser->m_tempPool, XML_T(ASCII_RPAREN)) in doProlog()
5195 || ! poolAppendChar(&parser->m_tempPool, XML_T('\0'))) in doProlog()
5197 parser->m_declAttributeType = parser->m_tempPool.start; in doProlog()
5198 poolFinish(&parser->m_tempPool); in doProlog()
5201 parser->m_attlistDeclHandler( in doProlog()
5202 parser->m_handlerArg, parser->m_declElementType->name, in doProlog()
5203 parser->m_declAttributeId->name, parser->m_declAttributeType, 0, in doProlog()
5208 poolClear(&parser->m_tempPool); in doProlog()
5215 parser, enc, parser->m_declAttributeIsCdata, in doProlog()
5224 parser->m_declElementType, parser->m_declAttributeId, in doProlog()
5225 parser->m_declAttributeIsCdata, XML_FALSE, attVal, parser)) in doProlog()
5227 if (parser->m_attlistDeclHandler && parser->m_declAttributeType) { in doProlog()
5228 if (*parser->m_declAttributeType == XML_T(ASCII_LPAREN) in doProlog()
5229 || (*parser->m_declAttributeType == XML_T(ASCII_N) in doProlog()
5230 && parser->m_declAttributeType[1] == XML_T(ASCII_O))) { in doProlog()
5232 if (! poolAppendChar(&parser->m_tempPool, XML_T(ASCII_RPAREN)) in doProlog()
5233 || ! poolAppendChar(&parser->m_tempPool, XML_T('\0'))) in doProlog()
5235 parser->m_declAttributeType = parser->m_tempPool.start; in doProlog()
5236 poolFinish(&parser->m_tempPool); in doProlog()
5239 parser->m_attlistDeclHandler( in doProlog()
5240 parser->m_handlerArg, parser->m_declElementType->name, in doProlog()
5241 parser->m_declAttributeId->name, parser->m_declAttributeType, in doProlog()
5243 poolClear(&parser->m_tempPool); in doProlog()
5254 parser, enc, s + enc->minBytesPerChar, next - enc->minBytesPerChar, in doProlog()
5256 if (parser->m_declEntity) { in doProlog()
5257 parser->m_declEntity->textPtr = poolStart(&dtd->entityValuePool); in doProlog()
5258 parser->m_declEntity->textLen in doProlog()
5261 if (parser->m_entityDeclHandler) { in doProlog()
5263 parser->m_entityDeclHandler( in doProlog()
5264 parser->m_handlerArg, parser->m_declEntity->name, in doProlog()
5265 parser->m_declEntity->is_param, parser->m_declEntity->textPtr, in doProlog()
5266 parser->m_declEntity->textLen, parser->m_curBase, 0, 0, 0); in doProlog()
5276 if (parser->m_declEntity != NULL) { in doProlog()
5278 = storeSelfEntityValue(parser, parser->m_declEntity); in doProlog()
5282 if (parser->m_entityDeclHandler) { in doProlog()
5284 parser->m_entityDeclHandler( in doProlog()
5285 parser->m_handlerArg, parser->m_declEntity->name, in doProlog()
5286 parser->m_declEntity->is_param, parser->m_declEntity->textPtr, in doProlog()
5287 parser->m_declEntity->textLen, parser->m_curBase, 0, 0, 0); in doProlog()
5296 parser->m_useForeignDTD = XML_FALSE; in doProlog()
5299 if (parser->m_startDoctypeDeclHandler) { in doProlog()
5300 parser->m_doctypeSysid = poolStoreString(&parser->m_tempPool, enc, in doProlog()
5303 if (parser->m_doctypeSysid == NULL) in doProlog()
5305 poolFinish(&parser->m_tempPool); in doProlog()
5312 parser->m_doctypeSysid = externalSubsetName; in doProlog()
5316 && ! parser->m_paramEntityParsing in doProlog()
5318 && parser->m_notStandaloneHandler in doProlog()
5319 && ! parser->m_notStandaloneHandler(parser->m_handlerArg)) in doProlog()
5324 if (! parser->m_declEntity) { in doProlog()
5325 parser->m_declEntity = (ENTITY *)lookup( in doProlog()
5326 parser, &dtd->paramEntities, externalSubsetName, sizeof(ENTITY)); in doProlog()
5327 if (! parser->m_declEntity) in doProlog()
5329 parser->m_declEntity->publicId = NULL; in doProlog()
5334 if (dtd->keepProcessing && parser->m_declEntity) { in doProlog()
5335 parser->m_declEntity->systemId in doProlog()
5338 if (! parser->m_declEntity->systemId) in doProlog()
5340 parser->m_declEntity->base = parser->m_curBase; in doProlog()
5345 if (parser->m_entityDeclHandler && role == XML_ROLE_ENTITY_SYSTEM_ID) in doProlog()
5353 if (parser->m_declEntity != NULL) { in doProlog()
5355 = storeSelfEntityValue(parser, parser->m_declEntity); in doProlog()
5360 if (dtd->keepProcessing && parser->m_declEntity in doProlog()
5361 && parser->m_entityDeclHandler) { in doProlog()
5363 parser->m_entityDeclHandler( in doProlog()
5364 parser->m_handlerArg, parser->m_declEntity->name, in doProlog()
5365 parser->m_declEntity->is_param, 0, 0, parser->m_declEntity->base, in doProlog()
5366 parser->m_declEntity->systemId, parser->m_declEntity->publicId, 0); in doProlog()
5371 if (dtd->keepProcessing && parser->m_declEntity) { in doProlog()
5372 parser->m_declEntity->notation in doProlog()
5374 if (! parser->m_declEntity->notation) in doProlog()
5377 if (parser->m_unparsedEntityDeclHandler) { in doProlog()
5379 parser->m_unparsedEntityDeclHandler( in doProlog()
5380 parser->m_handlerArg, parser->m_declEntity->name, in doProlog()
5381 parser->m_declEntity->base, parser->m_declEntity->systemId, in doProlog()
5382 parser->m_declEntity->publicId, parser->m_declEntity->notation); in doProlog()
5384 } else if (parser->m_entityDeclHandler) { in doProlog()
5386 parser->m_entityDeclHandler( in doProlog()
5387 parser->m_handlerArg, parser->m_declEntity->name, 0, 0, 0, in doProlog()
5388 parser->m_declEntity->base, parser->m_declEntity->systemId, in doProlog()
5389 parser->m_declEntity->publicId, parser->m_declEntity->notation); in doProlog()
5396 parser->m_declEntity = NULL; in doProlog()
5403 parser->m_declEntity = (ENTITY *)lookup(parser, &dtd->generalEntities, in doProlog()
5405 if (! parser->m_declEntity) in doProlog()
5407 if (parser->m_declEntity->name != name) { in doProlog()
5409 parser->m_declEntity = NULL; in doProlog()
5412 parser->m_declEntity->publicId = NULL; in doProlog()
5413 parser->m_declEntity->is_param = XML_FALSE; in doProlog()
5417 parser->m_declEntity->is_internal in doProlog()
5418 = ! (parser->m_parentParser || parser->m_openInternalEntities); in doProlog()
5419 if (parser->m_entityDeclHandler) in doProlog()
5424 parser->m_declEntity = NULL; in doProlog()
5433 parser->m_declEntity = (ENTITY *)lookup(parser, &dtd->paramEntities, in doProlog()
5435 if (! parser->m_declEntity) in doProlog()
5437 if (parser->m_declEntity->name != name) { in doProlog()
5439 parser->m_declEntity = NULL; in doProlog()
5442 parser->m_declEntity->publicId = NULL; in doProlog()
5443 parser->m_declEntity->is_param = XML_TRUE; in doProlog()
5447 parser->m_declEntity->is_internal in doProlog()
5448 = ! (parser->m_parentParser || parser->m_openInternalEntities); in doProlog()
5449 if (parser->m_entityDeclHandler) in doProlog()
5454 parser->m_declEntity = NULL; in doProlog()
5457 parser->m_declEntity = NULL; in doProlog()
5461 parser->m_declNotationPublicId = NULL; in doProlog()
5462 parser->m_declNotationName = NULL; in doProlog()
5463 if (parser->m_notationDeclHandler) { in doProlog()
5464 parser->m_declNotationName in doProlog()
5465 = poolStoreString(&parser->m_tempPool, enc, s, next); in doProlog()
5466 if (! parser->m_declNotationName) in doProlog()
5468 poolFinish(&parser->m_tempPool); in doProlog()
5475 if (parser in doProlog()
5477 XML_Char *tem = poolStoreString(&parser->m_tempPool, enc, in doProlog()
5483 parser->m_declNotationPublicId = tem; in doProlog()
5484 poolFinish(&parser->m_tempPool); in doProlog()
5489 if (parser->m_declNotationName && parser->m_notationDeclHandler) { in doProlog()
5490 const XML_Char *systemId = poolStoreString(&parser->m_tempPool, enc, in doProlog()
5496 parser->m_notationDeclHandler( in doProlog()
5497 parser->m_handlerArg, parser->m_declNotationName, parser->m_curBase, in doProlog()
5498 systemId, parser->m_declNotationPublicId); in doProlog()
5501 poolClear(&parser->m_tempPool); in doProlog()
5504 if (parser->m_declNotationPublicId && parser->m_notationDeclHandler) { in doProlog()
5506 parser->m_notationDeclHandler( in doProlog()
5507 parser->m_handlerArg, parser->m_declNotationName, parser->m_curBase, in doProlog()
5508 0, parser->m_declNotationPublicId); in doProlog()
5511 poolClear(&parser->m_tempPool); in doProlog()
5527 if (parser->m_defaultHandler) in doProlog()
5528 reportDefault(parser, enc, s, next); in doProlog()
5530 result = doIgnoreSection(parser, enc, &next, end, nextPtr, haveMore); in doProlog()
5534 parser->m_processor = ignoreSectionProcessor; in doProlog()
5540 if (parser->m_prologState.level >= parser->m_groupSize) { in doProlog()
5541 if (parser->m_groupSize) { in doProlog()
5544 if (parser->m_groupSize > (unsigned int)(-1) / 2u) { in doProlog()
5549 parser, parser->m_groupConnector, parser->m_groupSize *= 2); in doProlog()
5551 parser->m_groupSize /= 2; in doProlog()
5554 parser->m_groupConnector = new_connector; in doProlog()
5563 if (parser->m_groupSize > (size_t)(-1) / sizeof(int)) { in doProlog()
5569 parser, dtd->scaffIndex, parser->m_groupSize * sizeof(int)); in doProlog()
5575 parser->m_groupConnector in doProlog()
5576 = (char *)MALLOC(parser, parser->m_groupSize = 32); in doProlog()
5577 if (! parser->m_groupConnector) { in doProlog()
5578 parser->m_groupSize = 0; in doProlog()
5583 parser->m_groupConnector[parser->m_prologState.level] = 0; in doProlog()
5585 int myindex = nextScaffoldPart(parser); in doProlog()
5592 if (parser->m_elementDeclHandler) in doProlog()
5597 if (parser->m_groupConnector[parser->m_prologState.level] == ASCII_PIPE) in doProlog()
5599 parser->m_groupConnector[parser->m_prologState.level] = ASCII_COMMA; in doProlog()
5600 if (dtd->in_eldecl && parser->m_elementDeclHandler) in doProlog()
5604 if (parser->m_groupConnector[parser->m_prologState.level] == ASCII_COMMA) in doProlog()
5607 && ! parser->m_groupConnector[parser->m_prologState.level] in doProlog()
5612 if (parser->m_elementDeclHandler) in doProlog()
5615 parser->m_groupConnector[parser->m_prologState.level] = ASCII_PIPE; in doProlog()
5621 if (! parser->m_paramEntityParsing) in doProlog()
5630 entity = (ENTITY *)lookup(parser, &dtd->paramEntities, name, 0); in doProlog()
5636 if (parser->m_prologState.documentEntity in doProlog()
5637 && (dtd->standalone ? ! parser->m_openInternalEntities in doProlog()
5668 && parser->m_skippedEntityHandler) { in doProlog()
5669 parser->m_skippedEntityHandler(parser->m_handlerArg, name, 1); in doProlog()
5680 result = processEntity(parser, entity, betweenDecl, ENTITY_INTERNAL); in doProlog()
5686 if (parser->m_externalEntityRefHandler) { in doProlog()
5689 entityTrackingOnOpen(parser, entity, __LINE__); in doProlog()
5690 if (! parser->m_externalEntityRefHandler( in doProlog()
5691 parser->m_externalEntityRefHandlerArg, 0, entity->base, in doProlog()
5693 entityTrackingOnClose(parser, entity, __LINE__); in doProlog()
5697 entityTrackingOnClose(parser, entity, __LINE__); in doProlog()
5710 if (! dtd->standalone && parser->m_notStandaloneHandler in doProlog()
5711 && ! parser->m_notStandaloneHandler(parser->m_handlerArg)) in doProlog()
5718 if (parser->m_elementDeclHandler) { in doProlog()
5719 parser->m_declElementType = getElementType(parser, enc, s, next); in doProlog()
5720 if (! parser->m_declElementType) in doProlog()
5732 if (parser->m_elementDeclHandler) { in doProlog()
5734 = (XML_Content *)MALLOC(parser, sizeof(XML_Content)); in doProlog()
5744 parser->m_elementDeclHandler( in doProlog()
5745 parser->m_handlerArg, parser->m_declElementType->name, content); in doProlog()
5756 if (parser->m_elementDeclHandler) in doProlog()
5779 int myindex = nextScaffoldPart(parser); in doProlog()
5784 el = getElementType(parser, enc, s, nxt); in doProlog()
5799 if (parser->m_elementDeclHandler) in doProlog()
5817 if (parser->m_elementDeclHandler) in doProlog()
5823 XML_Content *model = build_model(parser); in doProlog()
5827 parser->m_elementDeclHandler( in doProlog()
5828 parser->m_handlerArg, parser->m_declElementType->name, model); in doProlog()
5838 if (! reportProcessingInstruction(parser, enc, s, next)) in doProlog()
5843 if (! reportComment(parser, enc, s, next)) in doProlog()
5855 if (parser->m_startDoctypeDeclHandler) in doProlog()
5859 if (dtd->keepProcessing && parser->m_entityDeclHandler) in doProlog()
5863 if (parser->m_notationDeclHandler) in doProlog()
5867 if (dtd->keepProcessing && parser->m_attlistDeclHandler) in doProlog()
5871 if (parser->m_elementDeclHandler) in doProlog()
5876 if (handleDefault && parser->m_defaultHandler) in doProlog()
5877 reportDefault(parser, enc, s, next); in doProlog()
5879 switch (parser->m_parsingStatus.parsing) { in doProlog()
5886 if (parser->m_reenter) { in doProlog()
5900 epilogProcessor(XML_Parser parser, const char *s, const char *end, in epilogProcessor() argument
5902 parser->m_processor = epilogProcessor; in epilogProcessor()
5903 parser->m_eventPtr = s; in epilogProcessor()
5906 int tok = XmlPrologTok(parser->m_encoding, s, end, &next); in epilogProcessor()
5908 if (! accountingDiffTolerated(parser, tok, s, next, __LINE__, in epilogProcessor()
5910 accountingOnAbort(parser); in epilogProcessor()
5914 parser->m_eventEndPtr = next; in epilogProcessor()
5918 if (parser->m_defaultHandler) { in epilogProcessor()
5919 reportDefault(parser, parser->m_encoding, s, next); in epilogProcessor()
5920 if (parser->m_parsingStatus.parsing == XML_FINISHED) in epilogProcessor()
5929 if (parser->m_defaultHandler) in epilogProcessor()
5930 reportDefault(parser, parser->m_encoding, s, next); in epilogProcessor()
5933 if (! reportProcessingInstruction(parser, parser->m_encoding, s, next)) in epilogProcessor()
5937 if (! reportComment(parser, parser->m_encoding, s, next)) in epilogProcessor()
5941 parser->m_eventPtr = next; in epilogProcessor()
5944 if (! parser->m_parsingStatus.finalBuffer) { in epilogProcessor()
5950 if (! parser->m_parsingStatus.finalBuffer) { in epilogProcessor()
5958 switch (parser->m_parsingStatus.parsing) { in epilogProcessor()
5960 parser->m_eventPtr = next; in epilogProcessor()
5964 parser->m_eventPtr = next; in epilogProcessor()
5967 if (parser->m_reenter) { in epilogProcessor()
5972 parser->m_eventPtr = s = next; in epilogProcessor()
5978 processEntity(XML_Parser parser, ENTITY *entity, XML_Bool betweenDecl, in processEntity() argument
5983 parser->m_processor = internalEntityProcessor; in processEntity()
5984 openEntityList = &parser->m_openInternalEntities; in processEntity()
5985 freeEntityList = &parser->m_freeInternalEntities; in processEntity()
5988 openEntityList = &parser->m_openAttributeEntities; in processEntity()
5989 freeEntityList = &parser->m_freeAttributeEntities; in processEntity()
5992 openEntityList = &parser->m_openValueEntities; in processEntity()
5993 freeEntityList = &parser->m_freeValueEntities; in processEntity()
6012 = (OPEN_INTERNAL_ENTITY *)MALLOC(parser, sizeof(OPEN_INTERNAL_ENTITY)); in processEntity()
6019 entityTrackingOnOpen(parser, entity, __LINE__); in processEntity()
6026 openEntity->startTagLevel = parser->m_tagLevel; in processEntity()
6034 triggerReenter(parser); in processEntity()
6040 internalEntityProcessor(XML_Parser parser, const char *s, const char *end, in internalEntityProcessor() argument
6049 OPEN_INTERNAL_ENTITY *openEntity = parser->m_openInternalEntities; in internalEntityProcessor()
6064 = XmlPrologTok(parser->m_internalEncoding, textStart, textEnd, &next); in internalEntityProcessor()
6065 result = doProlog(parser, parser->m_internalEncoding, textStart, textEnd, in internalEntityProcessor()
6069 result = doContent(parser, openEntity->startTagLevel, in internalEntityProcessor()
6070 parser->m_internalEncoding, textStart, textEnd, &next, in internalEntityProcessor()
6079 && (parser->m_parsingStatus.parsing == XML_SUSPENDED in internalEntityProcessor()
6080 || (parser->m_parsingStatus.parsing == XML_PARSING in internalEntityProcessor()
6081 && parser->m_reenter))) { in internalEntityProcessor()
6090 triggerReenter(parser); in internalEntityProcessor()
6096 entityTrackingOnClose(parser, entity, __LINE__); in internalEntityProcessor()
6102 assert(parser->m_openInternalEntities == openEntity); in internalEntityProcessor()
6104 parser->m_openInternalEntities = parser->m_openInternalEntities->next; in internalEntityProcessor()
6107 openEntity->next = parser->m_freeInternalEntities; in internalEntityProcessor()
6108 parser->m_freeInternalEntities = openEntity; in internalEntityProcessor()
6110 if (parser->m_openInternalEntities == NULL) { in internalEntityProcessor()
6111 parser->m_processor = entity->is_param ? prologProcessor : contentProcessor; in internalEntityProcessor()
6113 triggerReenter(parser); in internalEntityProcessor()
6118 errorProcessor(XML_Parser parser, const char *s, const char *end, in errorProcessor() argument
6123 return parser->m_errorCode; in errorProcessor()
6127 storeAttributeValue(XML_Parser parser, const ENCODING *enc, XML_Bool isCdata, in storeAttributeValue() argument
6134 if (! parser->m_openAttributeEntities) { in storeAttributeValue()
6135 result = appendAttributeValue(parser, enc, isCdata, next, end, pool, in storeAttributeValue()
6138 OPEN_INTERNAL_ENTITY *const openEntity = parser->m_openAttributeEntities; in storeAttributeValue()
6151 parser, parser->m_internalEncoding, isCdata, textStart, textEnd, in storeAttributeValue()
6173 entityTrackingOnClose(parser, entity, __LINE__); in storeAttributeValue()
6179 assert(parser->m_openAttributeEntities == openEntity); in storeAttributeValue()
6181 parser->m_openAttributeEntities = parser->m_openAttributeEntities->next; in storeAttributeValue()
6184 openEntity->next = parser->m_freeAttributeEntities; in storeAttributeValue()
6185 parser->m_freeAttributeEntities = openEntity; in storeAttributeValue()
6189 if (result || (parser->m_openAttributeEntities == NULL && end == next)) { in storeAttributeValue()
6204 appendAttributeValue(XML_Parser parser, const ENCODING *enc, XML_Bool isCdata, in appendAttributeValue() argument
6207 DTD *const dtd = parser->m_dtd; /* save one level of indirection */ in appendAttributeValue()
6217 if (! accountingDiffTolerated(parser, tok, ptr, next, __LINE__, account)) { in appendAttributeValue()
6218 accountingOnAbort(parser); in appendAttributeValue()
6229 if (enc == parser->m_encoding) in appendAttributeValue()
6230 parser->m_eventPtr = next; in appendAttributeValue()
6233 if (enc == parser->m_encoding) in appendAttributeValue()
6234 parser->m_eventPtr = ptr; in appendAttributeValue()
6241 if (enc == parser->m_encoding) in appendAttributeValue()
6242 parser->m_eventPtr = ptr; in appendAttributeValue()
6288 accountingDiffTolerated(parser, tok, (char *)&ch, in appendAttributeValue()
6296 name = poolStoreString(&parser->m_temp2Pool, enc, in appendAttributeValue()
6301 entity = (ENTITY *)lookup(parser, &dtd->generalEntities, name, 0); in appendAttributeValue()
6302 poolDiscard(&parser->m_temp2Pool); in appendAttributeValue()
6309 parser->m_prologState.documentEntity && in appendAttributeValue()
6311 (dtd->standalone ? ! parser->m_openInternalEntities in appendAttributeValue()
6334 if (enc == parser->m_encoding) { in appendAttributeValue()
6352 parser->m_eventPtr = ptr; /* LCOV_EXCL_LINE */ in appendAttributeValue()
6357 if (enc == parser->m_encoding) in appendAttributeValue()
6358 parser->m_eventPtr = ptr; in appendAttributeValue()
6362 if (enc == parser->m_encoding) in appendAttributeValue()
6363 parser->m_eventPtr = ptr; in appendAttributeValue()
6367 result = processEntity(parser, entity, XML_FALSE, ENTITY_ATTRIBUTE); in appendAttributeValue()
6386 if (enc == parser->m_encoding) in appendAttributeValue()
6387 parser->m_eventPtr = ptr; in appendAttributeValue()
6398 storeEntityValue(XML_Parser parser, const ENCODING *enc, in storeEntityValue() argument
6401 DTD *const dtd = parser->m_dtd; /* save one level of indirection */ in storeEntityValue()
6405 int oldInEntityValue = parser->m_prologState.inEntityValue; in storeEntityValue()
6406 parser->m_prologState.inEntityValue = 1; in storeEntityValue()
6424 if (! accountingDiffTolerated(parser, tok, entityTextPtr, next, __LINE__, in storeEntityValue()
6426 accountingOnAbort(parser); in storeEntityValue()
6434 if (parser->m_isParamEntity || enc != parser->m_encoding) { in storeEntityValue()
6437 name = poolStoreString(&parser->m_tempPool, enc, in storeEntityValue()
6444 entity = (ENTITY *)lookup(parser, &dtd->paramEntities, name, 0); in storeEntityValue()
6445 poolDiscard(&parser->m_tempPool); in storeEntityValue()
6456 if (entity->open || (entity == parser->m_declEntity)) { in storeEntityValue()
6457 if (enc == parser->m_encoding) in storeEntityValue()
6458 parser->m_eventPtr = entityTextPtr; in storeEntityValue()
6463 if (parser->m_externalEntityRefHandler) { in storeEntityValue()
6466 entityTrackingOnOpen(parser, entity, __LINE__); in storeEntityValue()
6467 if (! parser->m_externalEntityRefHandler( in storeEntityValue()
6468 parser->m_externalEntityRefHandlerArg, 0, entity->base, in storeEntityValue()
6470 entityTrackingOnClose(parser, entity, __LINE__); in storeEntityValue()
6475 entityTrackingOnClose(parser, entity, __LINE__); in storeEntityValue()
6482 result = processEntity(parser, entity, XML_FALSE, ENTITY_VALUE); in storeEntityValue()
6490 parser->m_eventPtr = entityTextPtr; in storeEntityValue()
6518 if (enc == parser->m_encoding) in storeEntityValue()
6519 parser->m_eventPtr = entityTextPtr; in storeEntityValue()
6542 if (enc == parser->m_encoding) in storeEntityValue()
6543 parser->m_eventPtr = entityTextPtr; in storeEntityValue()
6547 if (enc == parser->m_encoding) in storeEntityValue()
6548 parser->m_eventPtr = next; in storeEntityValue()
6559 if (enc == parser->m_encoding) in storeEntityValue()
6560 parser->m_eventPtr = entityTextPtr; in storeEntityValue()
6569 parser->m_prologState.inEntityValue = oldInEntityValue; in storeEntityValue()
6579 callStoreEntityValue(XML_Parser parser, const ENCODING *enc, in callStoreEntityValue() argument
6585 if (! parser->m_openValueEntities) { in callStoreEntityValue()
6587 = storeEntityValue(parser, enc, next, entityTextEnd, account, &next); in callStoreEntityValue()
6589 OPEN_INTERNAL_ENTITY *const openEntity = parser->m_openValueEntities; in callStoreEntityValue()
6601 result = storeEntityValue(parser, parser->m_internalEncoding, textStart, in callStoreEntityValue()
6624 entityTrackingOnClose(parser, entity, __LINE__); in callStoreEntityValue()
6630 assert(parser->m_openValueEntities == openEntity); in callStoreEntityValue()
6632 parser->m_openValueEntities = parser->m_openValueEntities->next; in callStoreEntityValue()
6635 openEntity->next = parser->m_freeValueEntities; in callStoreEntityValue()
6636 parser->m_freeValueEntities = openEntity; in callStoreEntityValue()
6641 || (parser->m_openValueEntities == NULL && entityTextEnd == next)) { in callStoreEntityValue()
6652 storeSelfEntityValue(XML_Parser parser, ENTITY *entity) { in storeSelfEntityValue() argument
6658 STRING_POOL *const pool = &(parser->m_dtd->entityValuePool); in storeSelfEntityValue()
6697 reportProcessingInstruction(XML_Parser parser, const ENCODING *enc, in reportProcessingInstruction() argument
6702 if (! parser->m_processingInstructionHandler) { in reportProcessingInstruction()
6703 if (parser->m_defaultHandler) in reportProcessingInstruction()
6704 reportDefault(parser, enc, start, end); in reportProcessingInstruction()
6709 target = poolStoreString(&parser->m_tempPool, enc, start, tem); in reportProcessingInstruction()
6712 poolFinish(&parser->m_tempPool); in reportProcessingInstruction()
6713 data = poolStoreString(&parser->m_tempPool, enc, XmlSkipS(enc, tem), in reportProcessingInstruction()
6718 parser->m_processingInstructionHandler(parser->m_handlerArg, target, data); in reportProcessingInstruction()
6719 poolClear(&parser->m_tempPool); in reportProcessingInstruction()
6724 reportComment(XML_Parser parser, const ENCODING *enc, const char *start, in reportComment() argument
6727 if (! parser->m_commentHandler) { in reportComment()
6728 if (parser->m_defaultHandler) in reportComment()
6729 reportDefault(parser, enc, start, end); in reportComment()
6732 data = poolStoreString(&parser->m_tempPool, enc, in reportComment()
6738 parser->m_commentHandler(parser->m_handlerArg, data); in reportComment()
6739 poolClear(&parser->m_tempPool); in reportComment()
6744 reportDefault(XML_Parser parser, const ENCODING *enc, const char *s, in reportDefault() argument
6750 if (enc == parser->m_encoding) { in reportDefault()
6751 eventPP = &parser->m_eventPtr; in reportDefault()
6752 eventEndPP = &parser->m_eventEndPtr; in reportDefault()
6770 eventPP = &(parser->m_openInternalEntities->internalEventPtr); in reportDefault()
6771 eventEndPP = &(parser->m_openInternalEntities->internalEventEndPtr); in reportDefault()
6775 ICHAR *dataPtr = (ICHAR *)parser->m_dataBuf; in reportDefault()
6777 = XmlConvert(enc, &s, end, &dataPtr, (ICHAR *)parser->m_dataBufEnd); in reportDefault()
6779 parser->m_defaultHandler(parser->m_handlerArg, parser->m_dataBuf, in reportDefault()
6780 (int)(dataPtr - (ICHAR *)parser->m_dataBuf)); in reportDefault()
6785 parser->m_defaultHandler( in reportDefault()
6786 parser->m_handlerArg, (const XML_Char *)s, in reportDefault()
6792 XML_Bool isId, const XML_Char *value, XML_Parser parser) { in defineAttribute() argument
6808 parser, type->allocDefaultAtts * sizeof(DEFAULT_ATTRIBUTE)); in defineAttribute()
6833 temp = (DEFAULT_ATTRIBUTE *)REALLOC(parser, type->defaultAtts, in defineAttribute()
6852 setElementTypePrefix(XML_Parser parser, ELEMENT_TYPE *elementType) { in setElementTypePrefix() argument
6853 DTD *const dtd = parser->m_dtd; /* save one level of indirection */ in setElementTypePrefix()
6865 prefix = (PREFIX *)lookup(parser, &dtd->prefixes, poolStart(&dtd->pool), in setElementTypePrefix()
6881 getAttributeId(XML_Parser parser, const ENCODING *enc, const char *start, in getAttributeId() argument
6883 DTD *const dtd = parser->m_dtd; /* save one level of indirection */ in getAttributeId()
6893 id = (ATTRIBUTE_ID *)lookup(parser, &dtd->attributeIds, name, in getAttributeId()
6901 if (! parser->m_ns) in getAttributeId()
6910 id->prefix = (PREFIX *)lookup(parser, &dtd->prefixes, name + 6, in getAttributeId()
6925 id->prefix = (PREFIX *)lookup(parser, &dtd->prefixes, in getAttributeId()
6944 getContext(XML_Parser parser) { in getContext() argument
6945 DTD *const dtd = parser->m_dtd; /* save one level of indirection */ in getContext()
6952 if (! poolAppendChar(&parser->m_tempPool, XML_T(ASCII_EQUALS))) in getContext()
6955 if (parser->m_namespaceSeparator) in getContext()
6958 if (! poolAppendChar(&parser->m_tempPool, in getContext()
7002 if (needSep && ! poolAppendChar(&parser->m_tempPool, CONTEXT_SEP)) in getContext()
7005 if (! poolAppendChar(&parser->m_tempPool, *s)) in getContext()
7007 if (! poolAppendChar(&parser->m_tempPool, XML_T(ASCII_EQUALS))) in getContext()
7010 if (parser->m_namespaceSeparator) in getContext()
7013 if (! poolAppendChar(&parser->m_tempPool, prefix->binding->uri[i])) in getContext()
7026 if (needSep && ! poolAppendChar(&parser->m_tempPool, CONTEXT_SEP)) in getContext()
7029 if (! poolAppendChar(&parser->m_tempPool, *s)) in getContext()
7034 if (! poolAppendChar(&parser->m_tempPool, XML_T('\0'))) in getContext()
7036 return parser->m_tempPool.start; in getContext()
7040 setContext(XML_Parser parser, const XML_Char *context) { in setContext() argument
7045 DTD *const dtd = parser->m_dtd; /* save one level of indirection */ in setContext()
7051 if (! poolAppendChar(&parser->m_tempPool, XML_T('\0'))) in setContext()
7053 e = (ENTITY *)lookup(parser, &dtd->generalEntities, in setContext()
7054 poolStart(&parser->m_tempPool), 0); in setContext()
7060 poolDiscard(&parser->m_tempPool); in setContext()
7063 if (poolLength(&parser->m_tempPool) == 0) in setContext()
7066 if (! poolAppendChar(&parser->m_tempPool, XML_T('\0'))) in setContext()
7069 = (PREFIX *)lookup(parser, &dtd->prefixes, in setContext()
7070 poolStart(&parser->m_tempPool), sizeof(PREFIX)); in setContext()
7073 if (prefix->name == poolStart(&parser->m_tempPool)) { in setContext()
7078 poolDiscard(&parser->m_tempPool); in setContext()
7082 if (! poolAppendChar(&parser->m_tempPool, *context)) in setContext()
7084 if (! poolAppendChar(&parser->m_tempPool, XML_T('\0'))) in setContext()
7086 if (addBinding(parser, prefix, NULL, poolStart(&parser->m_tempPool), in setContext()
7087 &parser->m_inheritedBindings) in setContext()
7090 poolDiscard(&parser->m_tempPool); in setContext()
7095 if (! poolAppendChar(&parser->m_tempPool, *s)) in setContext()
7445 copy_salt_to_sipkey(XML_Parser parser, struct sipkey *key) { in copy_salt_to_sipkey() argument
7447 key->k[1] = get_hash_secret_salt(parser); in copy_salt_to_sipkey()
7451 hash(XML_Parser parser, KEY s) { in hash() argument
7455 copy_salt_to_sipkey(parser, &key); in hash()
7462 lookup(XML_Parser parser, HASH_TABLE *table, KEY name, size_t createSize) { in lookup() argument
7478 i = hash(parser, name) & ((unsigned long)table->size - 1); in lookup()
7480 unsigned long h = hash(parser, name); in lookup()
7518 unsigned long newHash = hash(parser, table->v[i]->name); in lookup()
7845 nextScaffoldPart(XML_Parser parser) { in nextScaffoldPart() argument
7846 DTD *const dtd = parser->m_dtd; /* save one level of indirection */ in nextScaffoldPart()
7856 if (parser->m_groupSize > ((size_t)(-1) / sizeof(int))) { in nextScaffoldPart()
7860 dtd->scaffIndex = (int *)MALLOC(parser, parser->m_groupSize * sizeof(int)); in nextScaffoldPart()
7884 parser, dtd->scaffold, dtd->scaffSize * 2 * sizeof(CONTENT_SCAFFOLD)); in nextScaffoldPart()
7889 temp = (CONTENT_SCAFFOLD *)MALLOC(parser, INIT_SCAFFOLD_ELEMENTS in nextScaffoldPart()
7915 build_model(XML_Parser parser) { in build_model() argument
7920 DTD *const dtd = parser->m_dtd; /* save one level of indirection */ in build_model()
7944 ret = (XML_Content *)MALLOC(parser, allocsize); in build_model()
8042 getElementType(XML_Parser parser, const ENCODING *enc, const char *ptr, in getElementType() argument
8044 DTD *const dtd = parser->m_dtd; /* save one level of indirection */ in getElementType()
8050 ret = (ELEMENT_TYPE *)lookup(parser, &dtd->elementTypes, name, in getElementType()
8058 if (! setElementTypePrefix(parser, ret)) in getElementType()
8222 testingAccountingGetCountBytesDirect(XML_Parser parser) { in testingAccountingGetCountBytesDirect() argument
8223 if (! parser) in testingAccountingGetCountBytesDirect()
8225 return parser->m_accounting.countBytesDirect; in testingAccountingGetCountBytesDirect()
8229 testingAccountingGetCountBytesIndirect(XML_Parser parser) { in testingAccountingGetCountBytesIndirect() argument
8230 if (! parser) in testingAccountingGetCountBytesIndirect()
8232 return parser->m_accounting.countBytesIndirect; in testingAccountingGetCountBytesIndirect()
8284 getRootParserOf(XML_Parser parser, unsigned int *outLevelDiff) { in getRootParserOf() argument
8285 XML_Parser rootParser = parser; in getRootParserOf()