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

Side by Side Diff: third_party/libxslt/libxslt/documents.c

Issue 1193533007: Upgrade to libxml 2.9.2 and libxslt 1.1.28 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: no iconv Created 5 years, 6 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
« no previous file with comments | « third_party/libxslt/libxslt/documents.h ('k') | third_party/libxslt/libxslt/extensions.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * documents.c: Implementation of the documents handling 2 * documents.c: Implementation of the documents handling
3 * 3 *
4 * See Copyright for the status of this software. 4 * See Copyright for the status of this software.
5 * 5 *
6 * daniel@veillard.com 6 * daniel@veillard.com
7 */ 7 */
8 8
9 #define IN_LIBXSLT 9 #define IN_LIBXSLT
10 #include "libxslt.h" 10 #include "libxslt.h"
(...skipping 18 matching lines...) Expand all
29 #include <libxml/xinclude.h> 29 #include <libxml/xinclude.h>
30 #endif 30 #endif
31 31
32 #define WITH_XSLT_DEBUG_DOCUMENTS 32 #define WITH_XSLT_DEBUG_DOCUMENTS
33 33
34 #ifdef WITH_XSLT_DEBUG 34 #ifdef WITH_XSLT_DEBUG
35 #define WITH_XSLT_DEBUG_DOCUMENTS 35 #define WITH_XSLT_DEBUG_DOCUMENTS
36 #endif 36 #endif
37 37
38 /************************************************************************ 38 /************************************************************************
39 * » » » » » » » » » * 39 *» » » » » » » » » *
40 * » » Hooks for the document loader» » » » * 40 *» » Hooks for the document loader» » » » *
41 * » » » » » » » » » * 41 *» » » » » » » » » *
42 ************************************************************************/ 42 ************************************************************************/
43 43
44 /** 44 /**
45 * xsltDocDefaultLoaderFunc: 45 * xsltDocDefaultLoaderFunc:
46 * @URI: the URI of the document to load 46 * @URI: the URI of the document to load
47 * @dict: the dictionary to use when parsing that document 47 * @dict: the dictionary to use when parsing that document
48 * @options: parsing options, a set of xmlParserOption 48 * @options: parsing options, a set of xmlParserOption
49 * @ctxt: the context, either a stylesheet or a transformation context 49 * @ctxt: the context, either a stylesheet or a transformation context
50 * @type: the xsltLoadType indicating the kind of loading required 50 * @type: the xsltLoadType indicating the kind of loading required
51 * 51 *
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 109
110 xsltDocLoaderFunc xsltDocDefaultLoader = xsltDocDefaultLoaderFunc; 110 xsltDocLoaderFunc xsltDocDefaultLoader = xsltDocDefaultLoaderFunc;
111 111
112 /** 112 /**
113 * xsltSetLoaderFunc: 113 * xsltSetLoaderFunc:
114 * @f: the new function to handle document loading. 114 * @f: the new function to handle document loading.
115 * 115 *
116 * Set the new function to load document, if NULL it resets it to the 116 * Set the new function to load document, if NULL it resets it to the
117 * default function. 117 * default function.
118 */ 118 */
119 119
120 void 120 void
121 xsltSetLoaderFunc(xsltDocLoaderFunc f) { 121 xsltSetLoaderFunc(xsltDocLoaderFunc f) {
122 if (f == NULL) 122 if (f == NULL)
123 xsltDocDefaultLoader = xsltDocDefaultLoaderFunc; 123 xsltDocDefaultLoader = xsltDocDefaultLoaderFunc;
124 else 124 else
125 xsltDocDefaultLoader = f; 125 xsltDocDefaultLoader = f;
126 } 126 }
127 127
128 /************************************************************************ 128 /************************************************************************
129 * * 129 * *
130 * Module interfaces * 130 * Module interfaces *
131 * * 131 * *
132 ************************************************************************/ 132 ************************************************************************/
133 133
134 /** 134 /**
135 * xsltNewDocument: 135 * xsltNewDocument:
136 * @ctxt: an XSLT transformation context (or NULL) 136 * @ctxt: an XSLT transformation context (or NULL)
137 * @doc: a parsed XML document 137 * @doc: a parsed XML document
138 * 138 *
139 * Register a new document, apply key computations 139 * Register a new document, apply key computations
140 * 140 *
141 * Returns a handler to the document 141 * Returns a handler to the document
142 */ 142 */
143 xsltDocumentPtr» 143 xsltDocumentPtr
144 xsltNewDocument(xsltTransformContextPtr ctxt, xmlDocPtr doc) { 144 xsltNewDocument(xsltTransformContextPtr ctxt, xmlDocPtr doc) {
145 xsltDocumentPtr cur; 145 xsltDocumentPtr cur;
146 146
147 cur = (xsltDocumentPtr) xmlMalloc(sizeof(xsltDocument)); 147 cur = (xsltDocumentPtr) xmlMalloc(sizeof(xsltDocument));
148 if (cur == NULL) { 148 if (cur == NULL) {
149 xsltTransformError(ctxt, NULL, (xmlNodePtr) doc, 149 xsltTransformError(ctxt, NULL, (xmlNodePtr) doc,
150 "xsltNewDocument : malloc failed\n"); 150 "xsltNewDocument : malloc failed\n");
151 return(NULL); 151 return(NULL);
152 } 152 }
153 memset(cur, 0, sizeof(xsltDocument)); 153 memset(cur, 0, sizeof(xsltDocument));
(...skipping 18 matching lines...) Expand all
172 172
173 /** 173 /**
174 * xsltNewStyleDocument: 174 * xsltNewStyleDocument:
175 * @style: an XSLT style sheet 175 * @style: an XSLT style sheet
176 * @doc: a parsed XML document 176 * @doc: a parsed XML document
177 * 177 *
178 * Register a new document, apply key computations 178 * Register a new document, apply key computations
179 * 179 *
180 * Returns a handler to the document 180 * Returns a handler to the document
181 */ 181 */
182 xsltDocumentPtr» 182 xsltDocumentPtr
183 xsltNewStyleDocument(xsltStylesheetPtr style, xmlDocPtr doc) { 183 xsltNewStyleDocument(xsltStylesheetPtr style, xmlDocPtr doc) {
184 xsltDocumentPtr cur; 184 xsltDocumentPtr cur;
185 185
186 cur = (xsltDocumentPtr) xmlMalloc(sizeof(xsltDocument)); 186 cur = (xsltDocumentPtr) xmlMalloc(sizeof(xsltDocument));
187 if (cur == NULL) { 187 if (cur == NULL) {
188 xsltTransformError(NULL, style, (xmlNodePtr) doc, 188 xsltTransformError(NULL, style, (xmlNodePtr) doc,
189 "xsltNewStyleDocument : malloc failed\n"); 189 "xsltNewStyleDocument : malloc failed\n");
190 return(NULL); 190 return(NULL);
191 } 191 }
192 memset(cur, 0, sizeof(xsltDocument)); 192 memset(cur, 0, sizeof(xsltDocument));
193 cur->doc = doc; 193 cur->doc = doc;
194 if (style != NULL) { 194 if (style != NULL) {
195 cur->next = style->docList; 195 cur->next = style->docList;
196 style->docList = cur; 196 style->docList = cur;
197 } 197 }
198 return(cur); 198 return(cur);
199 } 199 }
200 200
201 /** 201 /**
202 * xsltFreeStyleDocuments: 202 * xsltFreeStyleDocuments:
203 * @style: an XSLT stylesheet (representing a stylesheet-level) 203 * @style: an XSLT stylesheet (representing a stylesheet-level)
204 * 204 *
205 * Frees the node-trees (and xsltDocument structures) of all 205 * Frees the node-trees (and xsltDocument structures) of all
206 * stylesheet-modules of the stylesheet-level represented by 206 * stylesheet-modules of the stylesheet-level represented by
207 * the given @style. 207 * the given @style.
208 */ 208 */
209 void» 209 void
210 xsltFreeStyleDocuments(xsltStylesheetPtr style) { 210 xsltFreeStyleDocuments(xsltStylesheetPtr style) {
211 xsltDocumentPtr doc, cur; 211 xsltDocumentPtr doc, cur;
212 #ifdef XSLT_REFACTORED_XSLT_NSCOMP 212 #ifdef XSLT_REFACTORED_XSLT_NSCOMP
213 xsltNsMapPtr nsMap; 213 xsltNsMapPtr nsMap;
214 #endif 214 #endif
215 215
216 if (style == NULL) 216 if (style == NULL)
217 return; 217 return;
218 218
219 #ifdef XSLT_REFACTORED_XSLT_NSCOMP 219 #ifdef XSLT_REFACTORED_XSLT_NSCOMP
220 if (XSLT_HAS_INTERNAL_NSMAP(style)) 220 if (XSLT_HAS_INTERNAL_NSMAP(style))
221 nsMap = XSLT_GET_INTERNAL_NSMAP(style); 221 nsMap = XSLT_GET_INTERNAL_NSMAP(style);
222 else 222 else
223 » nsMap = NULL; 223 » nsMap = NULL;
224 #endif 224 #endif
225 225
226 cur = style->docList; 226 cur = style->docList;
227 while (cur != NULL) { 227 while (cur != NULL) {
228 doc = cur; 228 doc = cur;
229 cur = cur->next; 229 cur = cur->next;
230 #ifdef XSLT_REFACTORED_XSLT_NSCOMP 230 #ifdef XSLT_REFACTORED_XSLT_NSCOMP
231 /* 231 /*
232 * Restore all changed namespace URIs of ns-decls. 232 * Restore all changed namespace URIs of ns-decls.
233 */ 233 */
234 if (nsMap) 234 if (nsMap)
235 xsltRestoreDocumentNamespaces(nsMap, doc->doc); 235 xsltRestoreDocumentNamespaces(nsMap, doc->doc);
236 #endif 236 #endif
237 xsltFreeDocumentKeys(doc); 237 xsltFreeDocumentKeys(doc);
238 if (!doc->main) 238 if (!doc->main)
239 xmlFreeDoc(doc->doc); 239 xmlFreeDoc(doc->doc);
240 xmlFree(doc); 240 xmlFree(doc);
241 } 241 }
242 } 242 }
243 243
244 /** 244 /**
245 * xsltFreeDocuments: 245 * xsltFreeDocuments:
246 * @ctxt: an XSLT transformation context 246 * @ctxt: an XSLT transformation context
247 * 247 *
248 * Free up all the space used by the loaded documents 248 * Free up all the space used by the loaded documents
249 */ 249 */
250 void» 250 void
251 xsltFreeDocuments(xsltTransformContextPtr ctxt) { 251 xsltFreeDocuments(xsltTransformContextPtr ctxt) {
252 xsltDocumentPtr doc, cur; 252 xsltDocumentPtr doc, cur;
253 253
254 cur = ctxt->docList; 254 cur = ctxt->docList;
255 while (cur != NULL) { 255 while (cur != NULL) {
256 doc = cur; 256 doc = cur;
257 cur = cur->next; 257 cur = cur->next;
258 xsltFreeDocumentKeys(doc); 258 xsltFreeDocumentKeys(doc);
259 if (!doc->main) 259 if (!doc->main)
260 xmlFreeDoc(doc->doc); 260 xmlFreeDoc(doc->doc);
(...skipping 13 matching lines...) Expand all
274 /** 274 /**
275 * xsltLoadDocument: 275 * xsltLoadDocument:
276 * @ctxt: an XSLT transformation context 276 * @ctxt: an XSLT transformation context
277 * @URI: the computed URI of the document 277 * @URI: the computed URI of the document
278 * 278 *
279 * Try to load a document (not a stylesheet) 279 * Try to load a document (not a stylesheet)
280 * within the XSLT transformation context 280 * within the XSLT transformation context
281 * 281 *
282 * Returns the new xsltDocumentPtr or NULL in case of error 282 * Returns the new xsltDocumentPtr or NULL in case of error
283 */ 283 */
284 xsltDocumentPtr» 284 xsltDocumentPtr
285 xsltLoadDocument(xsltTransformContextPtr ctxt, const xmlChar *URI) { 285 xsltLoadDocument(xsltTransformContextPtr ctxt, const xmlChar *URI) {
286 xsltDocumentPtr ret; 286 xsltDocumentPtr ret;
287 xmlDocPtr doc; 287 xmlDocPtr doc;
288 288
289 if ((ctxt == NULL) || (URI == NULL)) 289 if ((ctxt == NULL) || (URI == NULL))
290 return(NULL); 290 return(NULL);
291 291
292 /* 292 /*
293 * Security framework check 293 * Security framework check
294 */ 294 */
295 if (ctxt->sec != NULL) { 295 if (ctxt->sec != NULL) {
296 int res; 296 int res;
297 » 297
298 res = xsltCheckRead(ctxt->sec, ctxt, URI); 298 res = xsltCheckRead(ctxt->sec, ctxt, URI);
299 if (res == 0) { 299 if (res == 0) {
300 xsltTransformError(ctxt, NULL, NULL, 300 xsltTransformError(ctxt, NULL, NULL,
301 "xsltLoadDocument: read rights for %s denied\n", 301 "xsltLoadDocument: read rights for %s denied\n",
302 URI); 302 URI);
303 return(NULL); 303 return(NULL);
304 } 304 }
305 } 305 }
306 306
307 /* 307 /*
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
348 348
349 /** 349 /**
350 * xsltLoadStyleDocument: 350 * xsltLoadStyleDocument:
351 * @style: an XSLT style sheet 351 * @style: an XSLT style sheet
352 * @URI: the computed URI of the document 352 * @URI: the computed URI of the document
353 * 353 *
354 * Try to load a stylesheet document within the XSLT transformation context 354 * Try to load a stylesheet document within the XSLT transformation context
355 * 355 *
356 * Returns the new xsltDocumentPtr or NULL in case of error 356 * Returns the new xsltDocumentPtr or NULL in case of error
357 */ 357 */
358 xsltDocumentPtr» 358 xsltDocumentPtr
359 xsltLoadStyleDocument(xsltStylesheetPtr style, const xmlChar *URI) { 359 xsltLoadStyleDocument(xsltStylesheetPtr style, const xmlChar *URI) {
360 xsltDocumentPtr ret; 360 xsltDocumentPtr ret;
361 xmlDocPtr doc; 361 xmlDocPtr doc;
362 xsltSecurityPrefsPtr sec; 362 xsltSecurityPrefsPtr sec;
363 363
364 if ((style == NULL) || (URI == NULL)) 364 if ((style == NULL) || (URI == NULL))
365 return(NULL); 365 return(NULL);
366 366
367 /* 367 /*
368 * Security framework check 368 * Security framework check
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
425 while (ret != NULL) { 425 while (ret != NULL) {
426 if (ret->doc == doc) 426 if (ret->doc == doc)
427 return(ret); 427 return(ret);
428 ret = ret->next; 428 ret = ret->next;
429 } 429 }
430 if (doc == ctxt->style->doc) 430 if (doc == ctxt->style->doc)
431 return(ctxt->document); 431 return(ctxt->document);
432 return(NULL); 432 return(NULL);
433 } 433 }
434 434
OLDNEW
« no previous file with comments | « third_party/libxslt/libxslt/documents.h ('k') | third_party/libxslt/libxslt/extensions.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698