| 4942 | } |
| 4943 | |
| 4944 | static enum XML_Error |
| 4945 | handleUnknownEncoding(XML_Parser parser, const XML_Char *encodingName) { |
| 4946 | if (parser->m_unknownEncodingHandler) { |
| 4947 | XML_Encoding info; |
| 4948 | int i; |
| 4949 | for (i = 0; i < 256; i++) |
| 4950 | info.map[i] = -1; |
| 4951 | info.convert = NULL; |
| 4952 | info.data = NULL; |
| 4953 | info.release = NULL; |
| 4954 | if (parser->m_unknownEncodingHandler(parser->m_unknownEncodingHandlerData, |
| 4955 | encodingName, &info)) { |
| 4956 | ENCODING *enc; |
| 4957 | parser->m_unknownEncodingMem = MALLOC(parser, XmlSizeOfUnknownEncoding()); |
| 4958 | if (! parser->m_unknownEncodingMem) { |
| 4959 | if (info.release) |
| 4960 | info.release(info.data); |
| 4961 | return XML_ERROR_NO_MEMORY; |
| 4962 | } |
| 4963 | enc = (parser->m_ns ? XmlInitUnknownEncodingNS : XmlInitUnknownEncoding)( |
| 4964 | parser->m_unknownEncodingMem, info.map, info.convert, info.data); |
| 4965 | if (enc) { |
| 4966 | parser->m_unknownEncodingData = info.data; |
| 4967 | parser->m_unknownEncodingRelease = info.release; |
| 4968 | parser->m_encoding = enc; |
| 4969 | return XML_ERROR_NONE; |
| 4970 | } |
| 4971 | } |
| 4972 | if (info.release != NULL) |
| 4973 | info.release(info.data); |
| 4974 | } |
| 4975 | return XML_ERROR_UNKNOWN_ENCODING; |
| 4976 | } |
| 4977 | |
| 4978 | static enum XML_Error PTRCALL |
| 4979 | prologInitProcessor(XML_Parser parser, const char *s, const char *end, |
no test coverage detected
searching dependent graphs…