MCPcopy Create free account
hub / github.com/Kitware/CMake / processEntity

Function processEntity

Utilities/cmexpat/lib/xmlparse.c:6339–6398  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

6337}
6338
6339static enum XML_Error
6340processEntity(XML_Parser parser, ENTITY *entity, XML_Bool betweenDecl,
6341 enum EntityType type) {
6342 OPEN_INTERNAL_ENTITY *openEntity, **openEntityList, **freeEntityList;
6343 switch (type) {
6344 case ENTITY_INTERNAL:
6345 parser->m_processor = internalEntityProcessor;
6346 openEntityList = &parser->m_openInternalEntities;
6347 freeEntityList = &parser->m_freeInternalEntities;
6348 break;
6349 case ENTITY_ATTRIBUTE:
6350 openEntityList = &parser->m_openAttributeEntities;
6351 freeEntityList = &parser->m_freeAttributeEntities;
6352 break;
6353 case ENTITY_VALUE:
6354 openEntityList = &parser->m_openValueEntities;
6355 freeEntityList = &parser->m_freeValueEntities;
6356 break;
6357 /* default case serves merely as a safety net in case of a
6358 * wrong entityType. Therefore we exclude the following lines
6359 * from the test coverage.
6360 *
6361 * LCOV_EXCL_START
6362 */
6363 default:
6364 // Should not reach here
6365 assert(0);
6366 /* LCOV_EXCL_STOP */
6367 }
6368
6369 if (*freeEntityList) {
6370 openEntity = *freeEntityList;
6371 *freeEntityList = openEntity->next;
6372 } else {
6373 openEntity = MALLOC(parser, sizeof(OPEN_INTERNAL_ENTITY));
6374 if (! openEntity)
6375 return XML_ERROR_NO_MEMORY;
6376 }
6377 entity->open = XML_TRUE;
6378 entity->hasMore = XML_TRUE;
6379#if XML_GE == 1
6380 entityTrackingOnOpen(parser, entity, __LINE__);
6381#endif
6382 entity->processed = 0;
6383 openEntity->next = *openEntityList;
6384 *openEntityList = openEntity;
6385 openEntity->entity = entity;
6386 openEntity->type = type;
6387 openEntity->startTagLevel = parser->m_tagLevel;
6388 openEntity->betweenDecl = betweenDecl;
6389 openEntity->internalEventPtr = NULL;
6390 openEntity->internalEventEndPtr = NULL;
6391
6392 // Only internal entities make use of the reenter flag
6393 // therefore no need to set it for other entity types
6394 if (type == ENTITY_INTERNAL) {
6395 triggerReenter(parser);
6396 }

Callers 4

doContentFunction · 0.85
doPrologFunction · 0.85
appendAttributeValueFunction · 0.85
storeEntityValueFunction · 0.85

Calls 2

entityTrackingOnOpenFunction · 0.85
triggerReenterFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…