Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(86)

Side by Side Diff: third_party/libxml/src/xmlreader.c

Issue 1752223002: Roll libxml to 2.9.3 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Re-cherry-pick fprintf formatting fix. Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * xmlreader.c: implements the xmlTextReader streaming node API 2 * xmlreader.c: implements the xmlTextReader streaming node API
3 * 3 *
4 * NOTE: 4 * NOTE:
5 * XmlTextReader.Normalization Property won't be supported, since 5 * XmlTextReader.Normalization Property won't be supported, since
6 * it makes the parser non compliant to the XML recommendation 6 * it makes the parser non compliant to the XML recommendation
7 * 7 *
8 * See Copyright for the status of this software. 8 * See Copyright for the status of this software.
9 * 9 *
10 * daniel@veillard.com 10 * daniel@veillard.com
(...skipping 2073 matching lines...) Expand 10 before | Expand all | Expand 10 after
2084 ret->entMax = 0; 2084 ret->entMax = 0;
2085 ret->entNr = 0; 2085 ret->entNr = 0;
2086 ret->input = input; 2086 ret->input = input;
2087 ret->buffer = xmlBufCreateSize(100); 2087 ret->buffer = xmlBufCreateSize(100);
2088 if (ret->buffer == NULL) { 2088 if (ret->buffer == NULL) {
2089 xmlFree(ret); 2089 xmlFree(ret);
2090 xmlGenericError(xmlGenericErrorContext, 2090 xmlGenericError(xmlGenericErrorContext,
2091 "xmlNewTextReader : malloc failed\n"); 2091 "xmlNewTextReader : malloc failed\n");
2092 return(NULL); 2092 return(NULL);
2093 } 2093 }
2094 /* no operation on a reader should require a huge buffer */
2095 xmlBufSetAllocationScheme(ret->buffer,
2096 XML_BUFFER_ALLOC_BOUNDED);
2094 ret->sax = (xmlSAXHandler *) xmlMalloc(sizeof(xmlSAXHandler)); 2097 ret->sax = (xmlSAXHandler *) xmlMalloc(sizeof(xmlSAXHandler));
2095 if (ret->sax == NULL) { 2098 if (ret->sax == NULL) {
2096 xmlBufFree(ret->buffer); 2099 xmlBufFree(ret->buffer);
2097 xmlFree(ret); 2100 xmlFree(ret);
2098 xmlGenericError(xmlGenericErrorContext, 2101 xmlGenericError(xmlGenericErrorContext,
2099 "xmlNewTextReader : malloc failed\n"); 2102 "xmlNewTextReader : malloc failed\n");
2100 return(NULL); 2103 return(NULL);
2101 } 2104 }
2102 xmlSAXVersion(ret->sax, 2); 2105 xmlSAXVersion(ret->sax, 2);
2103 ret->startElement = ret->sax->startElement; 2106 ret->startElement = ret->sax->startElement;
(...skipping 1505 matching lines...) Expand 10 before | Expand all | Expand 10 after
3609 if (reader->curnode != NULL) 3612 if (reader->curnode != NULL)
3610 node = reader->curnode; 3613 node = reader->curnode;
3611 else 3614 else
3612 node = reader->node; 3615 node = reader->node;
3613 3616
3614 switch (node->type) { 3617 switch (node->type) {
3615 case XML_NAMESPACE_DECL: 3618 case XML_NAMESPACE_DECL:
3616 return(((xmlNsPtr) node)->href); 3619 return(((xmlNsPtr) node)->href);
3617 case XML_ATTRIBUTE_NODE:{ 3620 case XML_ATTRIBUTE_NODE:{
3618 xmlAttrPtr attr = (xmlAttrPtr) node; 3621 xmlAttrPtr attr = (xmlAttrPtr) node;
3622 const xmlChar *ret;
3619 3623
3620 if ((attr->children != NULL) && 3624 if ((attr->children != NULL) &&
3621 (attr->children->type == XML_TEXT_NODE) && 3625 (attr->children->type == XML_TEXT_NODE) &&
3622 (attr->children->next == NULL)) 3626 (attr->children->next == NULL))
3623 return(attr->children->content); 3627 return(attr->children->content);
3624 else { 3628 else {
3625 if (reader->buffer == NULL) { 3629 if (reader->buffer == NULL) {
3626 reader->buffer = xmlBufCreateSize(100); 3630 reader->buffer = xmlBufCreateSize(100);
3627 if (reader->buffer == NULL) { 3631 if (reader->buffer == NULL) {
3628 xmlGenericError(xmlGenericErrorContext, 3632 xmlGenericError(xmlGenericErrorContext,
3629 "xmlTextReaderSetup : malloc failed\n"); 3633 "xmlTextReaderSetup : malloc failed\n");
3630 return (NULL); 3634 return (NULL);
3631 } 3635 }
3636 xmlBufSetAllocationScheme(reader->buffer,
3637 XML_BUFFER_ALLOC_BOUNDED);
3632 } else 3638 } else
3633 xmlBufEmpty(reader->buffer); 3639 xmlBufEmpty(reader->buffer);
3634 xmlBufGetNodeContent(reader->buffer, node); 3640 xmlBufGetNodeContent(reader->buffer, node);
3635 » » return(xmlBufContent(reader->buffer)); 3641 » » ret = xmlBufContent(reader->buffer);
3642 » » if (ret == NULL) {
3643 » » /* error on the buffer best to reallocate */
3644 » » xmlBufFree(reader->buffer);
3645 » » reader->buffer = xmlBufCreateSize(100);
3646 » » xmlBufSetAllocationScheme(reader->buffer,
3647 » » XML_BUFFER_ALLOC_BOUNDED);
3648 » » ret = BAD_CAST "";
3649 » » }
3650 » » return(ret);
3636 } 3651 }
3637 break; 3652 break;
3638 } 3653 }
3639 case XML_TEXT_NODE: 3654 case XML_TEXT_NODE:
3640 case XML_CDATA_SECTION_NODE: 3655 case XML_CDATA_SECTION_NODE:
3641 case XML_PI_NODE: 3656 case XML_PI_NODE:
3642 case XML_COMMENT_NODE: 3657 case XML_COMMENT_NODE:
3643 return(node->content); 3658 return(node->content);
3644 default: 3659 default:
3645 break; 3660 break;
(...skipping 1478 matching lines...) Expand 10 before | Expand all | Expand 10 after
5124 reader->input = input; 5139 reader->input = input;
5125 reader->allocs |= XML_TEXTREADER_INPUT; 5140 reader->allocs |= XML_TEXTREADER_INPUT;
5126 } 5141 }
5127 if (reader->buffer == NULL) 5142 if (reader->buffer == NULL)
5128 reader->buffer = xmlBufCreateSize(100); 5143 reader->buffer = xmlBufCreateSize(100);
5129 if (reader->buffer == NULL) { 5144 if (reader->buffer == NULL) {
5130 xmlGenericError(xmlGenericErrorContext, 5145 xmlGenericError(xmlGenericErrorContext,
5131 "xmlTextReaderSetup : malloc failed\n"); 5146 "xmlTextReaderSetup : malloc failed\n");
5132 return (-1); 5147 return (-1);
5133 } 5148 }
5149 /* no operation on a reader should require a huge buffer */
5150 xmlBufSetAllocationScheme(reader->buffer,
5151 XML_BUFFER_ALLOC_BOUNDED);
5134 if (reader->sax == NULL) 5152 if (reader->sax == NULL)
5135 reader->sax = (xmlSAXHandler *) xmlMalloc(sizeof(xmlSAXHandler)); 5153 reader->sax = (xmlSAXHandler *) xmlMalloc(sizeof(xmlSAXHandler));
5136 if (reader->sax == NULL) { 5154 if (reader->sax == NULL) {
5137 xmlGenericError(xmlGenericErrorContext, 5155 xmlGenericError(xmlGenericErrorContext,
5138 "xmlTextReaderSetup : malloc failed\n"); 5156 "xmlTextReaderSetup : malloc failed\n");
5139 return (-1); 5157 return (-1);
5140 } 5158 }
5141 xmlSAXVersion(reader->sax, 2); 5159 xmlSAXVersion(reader->sax, 2);
5142 reader->startElement = reader->sax->startElement; 5160 reader->startElement = reader->sax->startElement;
5143 reader->sax->startElement = xmlTextReaderStartElement; 5161 reader->sax->startElement = xmlTextReaderStartElement;
(...skipping 779 matching lines...) Expand 10 before | Expand all | Expand 10 after
5923 printf("ret: %d, cons: %ld , prod: %ld, output: '%s'\n", ret, cons, 5941 printf("ret: %d, cons: %ld , prod: %ld, output: '%s'\n", ret, cons,
5924 prod, output3); 5942 prod, output3);
5925 return (0); 5943 return (0);
5926 5944
5927 } 5945 }
5928 #endif 5946 #endif
5929 #endif /* NOT_USED_YET */ 5947 #endif /* NOT_USED_YET */
5930 #define bottom_xmlreader 5948 #define bottom_xmlreader
5931 #include "elfgcchack.h" 5949 #include "elfgcchack.h"
5932 #endif /* LIBXML_READER_ENABLED */ 5950 #endif /* LIBXML_READER_ENABLED */
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698