/* * This function creates and initializes a new instance of parser. * It is necessary to allocate the internal structure XMLReaderImpl that * will hold the top-level start/end/characters handlers, the pointer to * top-level SAX-handler. * It will be necessary to convert native SAX handlers calls to * XBinder's ones. */ OSXMLREADER* rtSaxCCreateXmlReader (OSCTXT* pctxt, void* pSaxHandlerData, CSAX_StartElementHandler pStartElementProc, CSAX_EndElementHandler pEndElementProc, CSAX_CharacterDataHandler pCharactersProc) { XML_Parser parser = XML_ParserCreate (NULL); /* Create Expat's parser instance */ XMLReaderImpl* reader; reader = (XMLReaderImpl*)XML_MemMalloc (parser, sizeof (XMLReaderImpl)); if (reader == 0) return 0; OSCRTLMEMSET (reader, 0, sizeof (XMLReaderImpl)); reader->pStartElementProc = pStartElementProc; reader->pEndElementProc = pEndElementProc; reader->pCharactersProc = pCharactersProc; reader->userData = pSaxHandlerData; XML_SetUserData (parser, reader); XML_SetElementHandler (parser, rtSaxCStartElementHandler, rtSaxCEndElementHandler); XML_SetCharacterDataHandler (parser, rtSaxCCharacterDataHandler); XML_SetCdataSectionHandler(parser, rtSaxCStartCdataSectionHandler, rtSaxCEndCdataSectionHandler); reader->parser = parser; reader->reader.pctxt = pctxt; return &reader->reader; }
void * _Expat_XML_MemMalloc(struct ExpatIFace * Self, XML_Parser parser, size_t size) { return XML_MemMalloc(parser, size); }