/src/ghostpdl/pdf/ghostpdf.h
Line | Count | Source (jump to first uncovered line) |
1 | | /* Copyright (C) 2018-2025 Artifex Software, Inc. |
2 | | All Rights Reserved. |
3 | | |
4 | | This software is provided AS-IS with no warranty, either express or |
5 | | implied. |
6 | | |
7 | | This software is distributed under license and may not be copied, |
8 | | modified or distributed except as expressly authorized under the terms |
9 | | of the license contained in the file LICENSE in this distribution. |
10 | | |
11 | | Refer to licensing information at http://www.artifex.com or contact |
12 | | Artifex Software, Inc., 39 Mesa Street, Suite 108A, San Francisco, |
13 | | CA 94129, USA, for further information. |
14 | | */ |
15 | | |
16 | | |
17 | | #ifndef PDF_CONTEXT |
18 | | #define PDF_CONTEXT |
19 | | |
20 | | #include "gserrors.h" /* Most files use this to set errors of the gs_error_ form */ |
21 | | #include "gxgstate.h" |
22 | | |
23 | 897k | #define BUF_SIZE 2048 |
24 | | |
25 | | /* Limit nesting of arrays and dictionaries. We don't want to allow this |
26 | | * to be unbounded, because on exit we could end up exceeding the C execution stack |
27 | | * if we get too deeply nested. |
28 | | */ |
29 | 29.5M | #define MAX_NESTING_DEPTH 100 |
30 | | |
31 | | #include "pdf_types.h" |
32 | | |
33 | | #if defined(MEMENTO) |
34 | | #define PDFI_LEAK_CHECK 0 |
35 | | #endif |
36 | | |
37 | | #ifndef PDFI_LEAK_CHECK |
38 | | #define PDFI_LEAK_CHECK 0 |
39 | | #endif |
40 | | |
41 | | /* A structure for setting/resetting the interpreter graphics state |
42 | | * and some graphics state content when switching between Ghostscript |
43 | | * and pdfi, when running under GS. |
44 | | */ |
45 | | typedef struct pdf_context_switch { |
46 | | gs_gstate *pgs; |
47 | | gs_font *psfont; |
48 | | gs_gstate_client_procs procs; |
49 | | void *client_data; |
50 | | void *profile_cache; |
51 | | } pdfi_switch_t; |
52 | | |
53 | | /* |
54 | | * The interpreter context. |
55 | | */ |
56 | | /* Warnings and errors. The difference between a warning and an error is that we use a warning where |
57 | | * the file is technically illegal but we can be certain as to the real intent. At the time of writing |
58 | | * the only case is also a perfect example; the use of an inline image filter abbreviation (eg A85) |
59 | | * on a stream or object which is not an inline image. Although technically incorrect, its obvious |
60 | | * how to deal with this. |
61 | | */ |
62 | | typedef enum pdf_error_e { |
63 | | #include "pdf_errors.h" |
64 | | E_PDF_MAX_ERROR /* last entry */ |
65 | | }pdf_error; |
66 | | |
67 | | typedef enum pdf_warning_e { |
68 | | #include "pdf_warnings.h" |
69 | | W_PDF_MAX_WARNING /* last entry */ |
70 | | } pdf_warning; |
71 | | |
72 | 0 | #define PDF_ERROR_BYTE_SIZE ((E_PDF_MAX_ERROR - 1) / (sizeof(char) * 8) + 1) |
73 | 0 | #define PDF_WARNING_BYTE_SIZE ((W_PDF_MAX_WARNING - 1) / (sizeof(char) * 8) + 1) |
74 | | |
75 | | typedef enum pdf_crypt_filter_e { |
76 | | CRYPT_NONE, /* Not an encrypted file */ |
77 | | CRYPT_IDENTITY, /* Encrypted file, but no encryption on this object type */ |
78 | | CRYPT_V1, /* 40-bit RC4 */ |
79 | | CRYPT_V2, /* 128-bit RC4 */ |
80 | | CRYPT_AESV2, /* 128-bit AES */ |
81 | | CRYPT_AESV3, /* 256-bit AES */ |
82 | | } pdf_crypt_filter; |
83 | | |
84 | | typedef enum pdf_type3_d_type_e { |
85 | | pdf_type3_d_none, |
86 | | pdf_type3_d0, |
87 | | pdf_type3_d1 |
88 | | } pdf_type3_d_type; |
89 | | |
90 | 636k | #define INITIAL_STACK_SIZE 32 |
91 | 542k | #define MAX_STACK_SIZE 524288 |
92 | 2.21M | #define MAX_OBJECT_CACHE_SIZE 200 |
93 | 8.39M | #define INITIAL_LOOP_TRACKER_SIZE 32 |
94 | | |
95 | | typedef struct pdf_transfer_s { |
96 | | gs_mapping_proc proc; /* typedef is in gxtmap.h */ |
97 | | frac values[transfer_map_size]; |
98 | | } pdf_transfer_t; |
99 | | |
100 | | /* Items we want preserved around content stream executions */ |
101 | | typedef struct stream_save_s { |
102 | | gs_offset_t stream_offset; |
103 | | int gsave_level; |
104 | | int stack_count; |
105 | | gs_matrix intial_CTM; |
106 | | int group_depth; |
107 | | } stream_save; |
108 | | |
109 | | /* resource font object cache - this is a simple lookup table |
110 | | to match a FontDescriptor containing a FontFile* entry with |
111 | | a pdfi font object derived from the FontFile stream |
112 | | */ |
113 | | |
114 | 36.1k | #define RESOURCE_FONT_CACHE_BLOCK_SIZE 32 |
115 | | typedef struct resource_font_cache_s resource_font_cache_t; |
116 | | |
117 | | struct resource_font_cache_s |
118 | | { |
119 | | int desc_obj_num; |
120 | | pdf_obj *pdffont; |
121 | | }; |
122 | | |
123 | | typedef struct name_entry_s { |
124 | | char *name; |
125 | | int len; |
126 | | unsigned int index; |
127 | | void *next; |
128 | | } pdfi_name_entry_t; |
129 | | |
130 | | typedef struct cmd_args_s { |
131 | | /* These are various command line switches, the list is not yet complete */ |
132 | | int first_page; /* -dFirstPage= */ |
133 | | int last_page; /* -dLastPage= */ |
134 | | bool pdfdebug; |
135 | | bool pdfstoponerror; |
136 | | bool pdfstoponwarning; |
137 | | bool notransparency; |
138 | | bool nocidfallback; |
139 | | int PDFA; |
140 | | int PDFX; |
141 | | bool no_pdfmark_outlines; /* can be overridden to true if multi-page output */ |
142 | | bool no_pdfmark_dests; /* can be overridden to true if multi-page output */ |
143 | | bool pdffitpage; |
144 | | bool usecropbox; |
145 | | bool useartbox; |
146 | | bool usebleedbox; |
147 | | bool usetrimbox; |
148 | | bool printed; |
149 | | bool showacroform; |
150 | | bool showannots; |
151 | | char **showannottypes; /* Null terminated array of strings, NULL if none */ |
152 | | bool dopdfmarks; |
153 | | bool preserveannots; |
154 | | char **preserveannottypes; /* Null terminated array of strings, NULL if none */ |
155 | | bool preservemarkedcontent; |
156 | | bool preserveembeddedfiles; |
157 | | bool preservedocview; |
158 | | bool nouserunit; |
159 | | bool renderttnotdef; |
160 | | bool pdfinfo; |
161 | | bool UsePDFX3Profile; |
162 | | bool NOSUBSTDEVICECOLORS; |
163 | | bool ditherppi; |
164 | | int PDFX3Profile_num; |
165 | | char *UseOutputIntent; |
166 | | char *PageList; |
167 | | bool QUIET; |
168 | | bool verbose_errors; |
169 | | bool verbose_warnings; |
170 | | gs_string cidfsubstpath; |
171 | | gs_string cidfsubstfont; |
172 | | gs_string defaultfont; |
173 | | bool defaultfont_is_name; |
174 | | |
175 | | bool ignoretounicode; |
176 | | bool nonativefontmap; |
177 | | } cmd_args_t; |
178 | | |
179 | | typedef struct encryption_state_s { |
180 | | /* Encryption, passwords and filter details */ |
181 | | bool is_encrypted; |
182 | | int V; |
183 | | int Length; |
184 | | char *Password; |
185 | | int PasswordLen; |
186 | | int R; |
187 | | /* Revision 1-4 have O and E being 32 bytes, revision 5 and 6 48 bytes */ |
188 | | char O[48]; |
189 | | char U[48]; |
190 | | /* OE and UE are used for revision 5 and 6 encryption */ |
191 | | char OE[32]; |
192 | | char UE[32]; |
193 | | int P; |
194 | | pdf_string *EKey; |
195 | | bool EncryptMetadata; |
196 | | pdf_crypt_filter StrF; |
197 | | pdf_crypt_filter StmF; |
198 | | /* decrypting strings is complicated :-( |
199 | | * Streams are easy, because they can't be in compressed ObjStms, and they |
200 | | * have to be indirect objects. Strings can be indirect references or directly |
201 | | * defined, can be in compressed ObjStms and can appear inside content streams. |
202 | | * When they are in content streams we don't decrypt them, because the *stream* |
203 | | * was already decrypted. So when strings are directly or indirectly defined, |
204 | | * and *NOT* defined as part of a content stream, and not in an Objstm, we |
205 | | * need to decrypt them. We can handle the checking for ObjStm in the actual |
206 | | * decryption routine, where we also handle picking out the object number of the |
207 | | * enclosing parent, if its a directly defined string, but we cannot tell |
208 | | * whether we are executing a content stream or not, so we need to know that. This |
209 | | * flag is set whenever we are executing a content stream, it is temporarily reset |
210 | | * by pdfi_dereference() because indirect references can't appear in a content stream |
211 | | * so we know we need to decrypt any strings that are indirectly referenced. Note that |
212 | | * Form handling needs to set this flag for the duration of a Form content stream, |
213 | | * because we can execute Forms outside a page context (eg Annotations). |
214 | | */ |
215 | | bool decrypt_strings; |
216 | | } encryption_state_t; |
217 | | |
218 | | typedef struct page_state_s { |
219 | | /* Page level PDF objects */ |
220 | | /* DefaultGray, RGB and CMYK spaces */ |
221 | | gs_color_space *DefaultGray_cs; |
222 | | gs_color_space *DefaultRGB_cs; |
223 | | gs_color_space *DefaultCMYK_cs; |
224 | | /* Last-ditch resource lookup */ |
225 | | pdf_dict *CurrentPageDict; |
226 | | /* Page leve 'Default' transfer functions, black generation and under colour removal */ |
227 | | pdf_transfer_t DefaultTransfers[4]; |
228 | | pdf_transfer_t DefaultBG; |
229 | | pdf_transfer_t DefaultUCR; |
230 | | /* This tracks whether the current page uses transparency features */ |
231 | | bool has_transparency; |
232 | | /* This tracks how many spots are on the current page */ |
233 | | int num_spots; |
234 | | /* Does this page need overprint support? */ |
235 | | bool needs_OP; |
236 | | /* Does this page have OP=true in ExtGState? */ |
237 | | bool has_OP; |
238 | | /* Are we simulating overprint on this page? */ |
239 | | bool simulate_op; |
240 | | double Size[4]; |
241 | | double Crop[4]; |
242 | | double UserUnit; |
243 | | } page_state_t; |
244 | | |
245 | | typedef struct text_state_s { |
246 | | /* we need the text enumerator in order to call gs_text_setcharwidth() for d0 and d1 */ |
247 | | gs_text_enum_t *current_enum; |
248 | | /* Detect if we are inside a text block at any time. Nested text blocks are illegal and certain |
249 | | * marking operations are illegal inside text blocks. We also manipulate this when rendering |
250 | | * type 3 BuildChar procedures, as those marking operations are legal in a BuildChar, even |
251 | | * when we are in a text block. |
252 | | */ |
253 | | int BlockDepth; |
254 | | /* We set this when in a clipping text rendering mode when we draw the first text |
255 | | * We use this (and the BlockDepth) to detect whether switching to a non-clipping |
256 | | * text mode is an error or not. |
257 | | */ |
258 | | bool TextClip; |
259 | | /* This is to determine if we get Type 3 Charproc operators (d0 and d1) outside |
260 | | * a Type 3 BuildChar. |
261 | | */ |
262 | | bool inside_CharProc; |
263 | | /* We need to know if we're in a type 3 CharProc which has executed a 'd1' operator. |
264 | | * Colour operators are technically invalid if we are in a 'd1' context and we must |
265 | | * ignore them. |
266 | | * OSS-fuzz #45320 has a type 3 font with a BuildChar which has a 'RG' before the |
267 | | * d1. This is (obviously) illegal because the spec says the first operation must |
268 | | * be either a d0 or d1, in addition because of the graphics state depth hackery |
269 | | * (see comments in pdf_d0() in pdf_font.c) this messes up the reference counting |
270 | | * of the colour spaces, leading to a crash. So what was a boolean flag is now an |
271 | | * enumerated type; pdf_type3_d_none, pdf_type3_d0 or pdf_type3_d1. |
272 | | */ |
273 | | pdf_type3_d_type CharProc_d_type; |
274 | | /* If there is no current point when we do a BT we start by doing a 0 0 moveto in order |
275 | | * to establish an initial point. However, this also starts a path. When we finish |
276 | | * off with a BT we need to clear that path by doing a newpath, otherwise we might |
277 | | * end up drawing it. See /tests_private/comparefiles/Bug692867.pdf |
278 | | * We store the initial current poitn validity and if t was not initially valid |
279 | | * (ie no path) then we do a newpath on a ET. |
280 | | * BT/ET are not supposed to be nested, and path construction is not permitted inside |
281 | | * a BT/ET block. |
282 | | */ |
283 | | bool initial_current_point_valid; |
284 | | } text_state_t; |
285 | | |
286 | | typedef struct device_state_s { |
287 | | /* Parameters/capabilities of the selected device */ |
288 | | /* Needed to determine whether we need to reset the device to handle any spots |
289 | | * and whether we need to prescan the PDF file to determine how many spot colourants |
290 | | * (if any) are used in the file. |
291 | | */ |
292 | | bool spot_capable; |
293 | | /* for avoiding charpath with pdfwrite */ |
294 | | bool preserve_tr_mode; |
295 | | /* Are SMask's preserved by device (pdfwrite) */ |
296 | | bool preserve_smask; |
297 | | bool ForOPDFRead; |
298 | | bool pdfmark; |
299 | | bool HighLevelDevice; |
300 | | /* These are derived from the device parameters rather than extracted from the device */ |
301 | | /* But this is a convenient place to keep them. */ |
302 | | /* Does current output device handle pdfmark */ |
303 | | bool writepdfmarks; |
304 | | /* Should annotations be preserved or marked for current output device? */ |
305 | | bool annotations_preserved; |
306 | | /* Should we pass on PageLabels (using a device param, not a pdfmark) */ |
307 | | bool WantsPageLabels; |
308 | | /* Is the device capable of handling optional content */ |
309 | | bool WantsOptionalContent; |
310 | | bool PassUserUnit; |
311 | | bool ModifiesPageSize; |
312 | | bool ModifiesPageOrder; |
313 | | } device_state_t; |
314 | | |
315 | | /* |
316 | | * resource_paths: for CMaps, iccprofiles, fonts... mainly build time settings and from |
317 | | * "-I" command line options. |
318 | | * font_paths: Specific to fonts: from the -sFONTPATH=<> option |
319 | | * We keep a running count (num_resource_paths) of all, and a one off count of paths that |
320 | | * came from the build (num_init_resource_paths) so we can keep the (weird) search order |
321 | | * that gs uses. |
322 | | */ |
323 | | typedef struct search_paths_s |
324 | | { |
325 | | gs_param_string *resource_paths; |
326 | | int num_resource_paths; /* total */ |
327 | | int num_init_resource_paths; /* number of paths that came from the build */ |
328 | | gs_param_string *font_paths; |
329 | | int num_font_paths; |
330 | | gs_param_string genericresourcedir; |
331 | | bool search_here_first; |
332 | | } search_paths_t; |
333 | | |
334 | | typedef struct pdf_context_s |
335 | | { |
336 | | pdf_obj_common; |
337 | | void *instance; |
338 | | gs_memory_t *memory; |
339 | | |
340 | | /* command line argument storage */ |
341 | | cmd_args_t args; |
342 | | |
343 | | /* Encryption state */ |
344 | | encryption_state_t encryption; |
345 | | |
346 | | /* Text and text state parameters */ |
347 | | text_state_t text; |
348 | | |
349 | | /* The state of the current page being processed */ |
350 | | page_state_t page; |
351 | | |
352 | | device_state_t device_state; |
353 | | |
354 | | |
355 | | /* PDF interpreter state */ |
356 | | |
357 | | /* State for handling the wacky W and W* operators */ |
358 | | bool clip_active; |
359 | | bool do_eoclip; |
360 | | |
361 | | /* Doing a high level form for pdfwrite (annotations) */ |
362 | | bool PreservePDFForm; |
363 | | /* If processing multiple files, the number of pages to add to /Page Destinations |
364 | | * when handling Outlines and Annotations. This is the number of pages in all |
365 | | * files completely processed so far. |
366 | | */ |
367 | | int Pdfmark_InitialPage; |
368 | | |
369 | | /* Optional things from Root */ |
370 | | pdf_dict *OCProperties; |
371 | | pdf_dict *Collection; |
372 | | |
373 | | /* Optional/Marked Content stuff */ |
374 | | void *OFFlevels; |
375 | | uint64_t BMClevel; |
376 | | bool BDCWasOC; |
377 | | |
378 | | /* Bitfields recording whether any errors or warnings were encountered */ |
379 | | char pdf_errors[PDF_ERROR_BYTE_SIZE]; |
380 | | char pdf_warnings[PDF_WARNING_BYTE_SIZE]; |
381 | | |
382 | | /* We need a gs_font_dir for gs_definefotn() */ |
383 | | gs_font_dir * font_dir; |
384 | | /* Obviously we need a graphics state */ |
385 | | gs_gstate *pgs; |
386 | | |
387 | | /* PDF really doesn't have a path in the graphics state. This is different to |
388 | | * PostScript and has implications; changing the CTM partway through path |
389 | | * construction affects path segments already accumulated. The path is |
390 | | * unaffected by gsvae and grestore. Previously we've unwound any pending |
391 | | * path and rerun it, this is causing problems so instead we'll do what |
392 | | * Acrobat obviously does and build the path outside the graphics state |
393 | | */ |
394 | | /* We make allocations in chunks for the path to avoid lots of little |
395 | | * allocations, but we need to know where the end of the current allocation |
396 | | * is so that we can tell if we would overflow and increase it. |
397 | | */ |
398 | | char *PathSegments; |
399 | | /* The current insertion point. */ |
400 | | char *PathSegmentsCurrent; |
401 | | /* The current limit of the block */ |
402 | | char *PathSegmentsTop; |
403 | | double *PathPts; |
404 | | double *PathPtsCurrent; |
405 | | double *PathPtsTop; |
406 | | |
407 | | /* set up by pdf_impl_set_device, this is the 'high water mark' for |
408 | | * restoring back to when we close a PDF file. This ensures the device |
409 | | * is correctly set up for any subesquent file to be run. |
410 | | */ |
411 | | int job_gstate_level; |
412 | | /* This is currently used for Patterns, but I suspect needs to be changed to use |
413 | | * 'the enclosing context' |
414 | | */ |
415 | | gs_gstate *DefaultQState; |
416 | | |
417 | | |
418 | | /* The input PDF filename and the stream for it */ |
419 | | char *filename; |
420 | | pdf_c_stream *main_stream; |
421 | | |
422 | | /* Length of the main file */ |
423 | | gs_offset_t main_stream_length; |
424 | | /* offset to the xref table */ |
425 | | gs_offset_t startxref; |
426 | | |
427 | | /* Track whether file is a hybrid. Initially prefer XRefStm but |
428 | | * if we fail to read the structure using an XRefStm, try again |
429 | | * using the xref |
430 | | */ |
431 | | bool prefer_xrefstm; |
432 | | bool is_hybrid; |
433 | | /* If we've already repaired the file once, and it still fails, don't try to repair it again */ |
434 | | bool repaired; |
435 | | /* Repairing is true while the repair code is running, during this we ignore errors and warnings */ |
436 | | bool repairing; |
437 | | |
438 | | /* The HeaderVersion is the declared version from the PDF header, but this |
439 | | * can be overridden by later trailer dictionaries, so the FinalVersion is |
440 | | * the version as finally read from the file. Note we don't currently use |
441 | | * these for anything, we might in future emit warnings if PDF files use features |
442 | | * inconsistent with the FinalVersion. |
443 | | */ |
444 | | float HeaderVersion, FinalVersion; |
445 | | |
446 | | /* Document level PDF objects */ |
447 | | xref_table_t *xref_table; |
448 | | /* Warning! Do not use ctx->Trailer directly as it may be replaced if the file is repaired. |
449 | | * See pdf_doc.c, pdf_read_Root() |
450 | | */ |
451 | | pdf_dict *Trailer; |
452 | | pdf_dict *Root; |
453 | | pdf_dict *Info; |
454 | | pdf_dict *PagesTree; |
455 | | uint64_t num_pages; |
456 | | uint32_t *page_array; /* cache of page dict object_num's for pdfmark Dest */ |
457 | | pdf_dict *AcroForm; |
458 | | bool NeedAppearances; /* From AcroForm, if any */ |
459 | | |
460 | | /* The interpreter operand stack */ |
461 | | uint32_t stack_size; |
462 | | pdf_obj **stack_bot; |
463 | | pdf_obj **stack_top; |
464 | | pdf_obj **stack_limit; |
465 | | |
466 | | /* The object cache */ |
467 | | uint32_t cache_entries; |
468 | | pdf_obj_cache_entry *cache_LRU; |
469 | | pdf_obj_cache_entry *cache_MRU; |
470 | | |
471 | | /* The loop detection state */ |
472 | | uint32_t loop_detection_size; |
473 | | uint32_t loop_detection_entries; |
474 | | uint64_t *loop_detection; |
475 | | |
476 | | /* A counter for nesting of arrays and dictionaries. We don't want to allow this |
477 | | * to be unbounded, because on exit we could end up exceeding the C execution stack |
478 | | * if we get too deeply nested. |
479 | | */ |
480 | | uint32_t object_nesting; |
481 | | |
482 | | /* Used to set the 'parent' stream of a stream that gets created by dereferencing |
483 | | * We should not need this but badly fromed PDF files can use Resources defined in |
484 | | * an earlier (non-Page) stream object, and Acrobat handles this, so we need to. |
485 | | * We could haev done this more neatly if we'd known this during design :-( |
486 | | */ |
487 | | pdf_stream *current_stream; |
488 | | stream_save current_stream_save; |
489 | | |
490 | | /* A name table :-( */ |
491 | | pdfi_name_entry_t *name_table; |
492 | | |
493 | | gs_string *fontmapfiles; |
494 | | int num_fontmapfiles; |
495 | | |
496 | | search_paths_t search_paths; |
497 | | pdf_dict *pdffontmap; |
498 | | pdf_dict *pdfnativefontmap; /* Explicit mappings take precedence, hence we need separate dictionaries */ |
499 | | pdf_dict *pdf_substitute_fonts; |
500 | | pdf_dict *pdfcidfmap; |
501 | | resource_font_cache_t *resource_font_cache; |
502 | | uint32_t resource_font_cache_size; |
503 | | |
504 | | gx_device *devbbox; /* Cached for use in pdfi_string_bbox */ |
505 | | /* These function pointers can be replaced by ones intended to replicate |
506 | | * PostScript functionality when running inside the Ghostscript PostScript |
507 | | * interpreter. |
508 | | */ |
509 | | int (*finish_page) (struct pdf_context_s *ctx); |
510 | | int (*get_glyph_name)(gs_font *font, gs_glyph index, gs_const_string *pstr); |
511 | | int (*get_glyph_index)(gs_font *font, byte *str, uint size, uint *glyph); |
512 | | |
513 | | #if REFCNT_DEBUG |
514 | | uint64_t ref_UID; |
515 | | #endif |
516 | | #if CACHE_STATISTICS |
517 | | uint64_t hits; |
518 | | uint64_t misses; |
519 | | uint64_t compressed_hits; |
520 | | uint64_t compressed_misses; |
521 | | #endif |
522 | | #if PDFI_LEAK_CHECK |
523 | | gs_memory_status_t memstat; |
524 | | #endif |
525 | | }pdf_context; |
526 | | |
527 | 743k | #define OBJ_CTX(o) ((pdf_context *)(o->ctx)) |
528 | 79.4k | #define OBJ_MEMORY(o) OBJ_CTX(o)->memory |
529 | | |
530 | | int pdfi_add_paths_to_search_paths(pdf_context *ctx, const char *ppath, int l, bool fontpath); |
531 | | int pdfi_add_initial_paths_to_search_paths(pdf_context *ctx, const char *ppath, int l); |
532 | | int pdfi_add_fontmapfiles(pdf_context *ctx, const char *ppath, int l); |
533 | | |
534 | | pdf_context *pdfi_create_context(gs_memory_t *pmem); |
535 | | int pdfi_clear_context(pdf_context *ctx); |
536 | | int pdfi_free_context(pdf_context *ctx); |
537 | | |
538 | | int pdfi_get_name_index(pdf_context *ctx, char *name, int len, unsigned int *returned); |
539 | | int pdfi_name_from_index(pdf_context *ctx, int index, unsigned char **name, unsigned int *len); |
540 | | int pdfi_separation_name_from_index(gs_gstate *pgs, gs_separation_name index, unsigned char **name, unsigned int *len); |
541 | | int pdfi_open_pdf_file(pdf_context *ctx, char *filename); |
542 | | int pdfi_set_input_stream(pdf_context *ctx, stream *stm); |
543 | | int pdfi_process_pdf_file(pdf_context *ctx, char *filename); |
544 | | int pdfi_prep_collection(pdf_context *ctx, uint64_t *TotalFiles, char ***names_array); |
545 | | int pdfi_finish_pdf_file(pdf_context *ctx); |
546 | | int pdfi_close_pdf_file(pdf_context *ctx); |
547 | | int pdfi_gstate_from_PS(pdf_context *ctx, gs_gstate *pgs, pdfi_switch_t *i_switch, gsicc_profile_cache_t *profile_cache); |
548 | | void pdfi_gstate_to_PS(pdf_context *ctx, gs_gstate *pgs, pdfi_switch_t *i_switch); |
549 | | int pdfi_output_page_info(pdf_context *ctx, uint64_t page_num); |
550 | | |
551 | | void pdfi_report_errors(pdf_context *ctx); |
552 | | void pdfi_verbose_error(pdf_context *ctx, int gs_error, const char *gs_lib_function, int pdfi_error, const char *pdfi_function_name, const char *extra_info, const char *file_line); |
553 | | void pdfi_verbose_warning(pdf_context *ctx, int gs_error, const char *gs_lib_function, int pdfi_warning, const char *pdfi_function_name, const char *extra_info, const char *file_line); |
554 | | |
555 | | static inline void pdfi_set_error_file_line(pdf_context *ctx, int gs_error, const char *gs_lib_function, pdf_error pdfi_error, const char *pdfi_function_name, const char *extra_info, const char *file_line) |
556 | 34.0M | { |
557 | | /* ignore problems while repairing a file */ |
558 | 34.0M | if (!ctx->repairing) { |
559 | 25.6M | if (pdfi_error != 0) |
560 | 24.9M | ctx->pdf_errors[pdfi_error / (sizeof(char) * 8)] |= 1 << pdfi_error % (sizeof(char) * 8); |
561 | 25.6M | if (ctx->args.verbose_errors) |
562 | 0 | pdfi_verbose_error(ctx, gs_error, gs_lib_function, pdfi_error, pdfi_function_name, extra_info, file_line); |
563 | 25.6M | } |
564 | 34.0M | } Unexecuted instantiation: zpdfops.c:pdfi_set_error_file_line pdf_loop_detect.c:pdfi_set_error_file_line Line | Count | Source | 556 | 34.6k | { | 557 | | /* ignore problems while repairing a file */ | 558 | 34.6k | if (!ctx->repairing) { | 559 | 34.5k | if (pdfi_error != 0) | 560 | 34.5k | ctx->pdf_errors[pdfi_error / (sizeof(char) * 8)] |= 1 << pdfi_error % (sizeof(char) * 8); | 561 | 34.5k | if (ctx->args.verbose_errors) | 562 | 0 | pdfi_verbose_error(ctx, gs_error, gs_lib_function, pdfi_error, pdfi_function_name, extra_info, file_line); | 563 | 34.5k | } | 564 | 34.6k | } |
ghostpdf.c:pdfi_set_error_file_line Line | Count | Source | 556 | 76.7k | { | 557 | | /* ignore problems while repairing a file */ | 558 | 76.7k | if (!ctx->repairing) { | 559 | 76.7k | if (pdfi_error != 0) | 560 | 76.7k | ctx->pdf_errors[pdfi_error / (sizeof(char) * 8)] |= 1 << pdfi_error % (sizeof(char) * 8); | 561 | 76.7k | if (ctx->args.verbose_errors) | 562 | 0 | pdfi_verbose_error(ctx, gs_error, gs_lib_function, pdfi_error, pdfi_function_name, extra_info, file_line); | 563 | 76.7k | } | 564 | 76.7k | } |
Unexecuted instantiation: pdf_dict.c:pdfi_set_error_file_line Unexecuted instantiation: pdf_array.c:pdfi_set_error_file_line pdf_xref.c:pdfi_set_error_file_line Line | Count | Source | 556 | 23.5k | { | 557 | | /* ignore problems while repairing a file */ | 558 | 23.5k | if (!ctx->repairing) { | 559 | 23.5k | if (pdfi_error != 0) | 560 | 23.5k | ctx->pdf_errors[pdfi_error / (sizeof(char) * 8)] |= 1 << pdfi_error % (sizeof(char) * 8); | 561 | 23.5k | if (ctx->args.verbose_errors) | 562 | 0 | pdfi_verbose_error(ctx, gs_error, gs_lib_function, pdfi_error, pdfi_function_name, extra_info, file_line); | 563 | 23.5k | } | 564 | 23.5k | } |
pdf_int.c:pdfi_set_error_file_line Line | Count | Source | 556 | 30.1M | { | 557 | | /* ignore problems while repairing a file */ | 558 | 30.1M | if (!ctx->repairing) { | 559 | 21.9M | if (pdfi_error != 0) | 560 | 21.2M | ctx->pdf_errors[pdfi_error / (sizeof(char) * 8)] |= 1 << pdfi_error % (sizeof(char) * 8); | 561 | 21.9M | if (ctx->args.verbose_errors) | 562 | 0 | pdfi_verbose_error(ctx, gs_error, gs_lib_function, pdfi_error, pdfi_function_name, extra_info, file_line); | 563 | 21.9M | } | 564 | 30.1M | } |
pdf_file.c:pdfi_set_error_file_line Line | Count | Source | 556 | 4.06k | { | 557 | | /* ignore problems while repairing a file */ | 558 | 4.06k | if (!ctx->repairing) { | 559 | 3.45k | if (pdfi_error != 0) | 560 | 3.45k | ctx->pdf_errors[pdfi_error / (sizeof(char) * 8)] |= 1 << pdfi_error % (sizeof(char) * 8); | 561 | 3.45k | if (ctx->args.verbose_errors) | 562 | 0 | pdfi_verbose_error(ctx, gs_error, gs_lib_function, pdfi_error, pdfi_function_name, extra_info, file_line); | 563 | 3.45k | } | 564 | 4.06k | } |
Unexecuted instantiation: pdf_path.c:pdfi_set_error_file_line pdf_colour.c:pdfi_set_error_file_line Line | Count | Source | 556 | 153 | { | 557 | | /* ignore problems while repairing a file */ | 558 | 153 | if (!ctx->repairing) { | 559 | 153 | if (pdfi_error != 0) | 560 | 153 | ctx->pdf_errors[pdfi_error / (sizeof(char) * 8)] |= 1 << pdfi_error % (sizeof(char) * 8); | 561 | 153 | if (ctx->args.verbose_errors) | 562 | 0 | pdfi_verbose_error(ctx, gs_error, gs_lib_function, pdfi_error, pdfi_function_name, extra_info, file_line); | 563 | 153 | } | 564 | 153 | } |
Unexecuted instantiation: pdf_pattern.c:pdfi_set_error_file_line pdf_gstate.c:pdfi_set_error_file_line Line | Count | Source | 556 | 85 | { | 557 | | /* ignore problems while repairing a file */ | 558 | 85 | if (!ctx->repairing) { | 559 | 85 | if (pdfi_error != 0) | 560 | 85 | ctx->pdf_errors[pdfi_error / (sizeof(char) * 8)] |= 1 << pdfi_error % (sizeof(char) * 8); | 561 | 85 | if (ctx->args.verbose_errors) | 562 | 0 | pdfi_verbose_error(ctx, gs_error, gs_lib_function, pdfi_error, pdfi_function_name, extra_info, file_line); | 563 | 85 | } | 564 | 85 | } |
Unexecuted instantiation: pdf_stack.c:pdfi_set_error_file_line pdf_image.c:pdfi_set_error_file_line Line | Count | Source | 556 | 24.2k | { | 557 | | /* ignore problems while repairing a file */ | 558 | 24.2k | if (!ctx->repairing) { | 559 | 24.2k | if (pdfi_error != 0) | 560 | 24.2k | ctx->pdf_errors[pdfi_error / (sizeof(char) * 8)] |= 1 << pdfi_error % (sizeof(char) * 8); | 561 | 24.2k | if (ctx->args.verbose_errors) | 562 | 0 | pdfi_verbose_error(ctx, gs_error, gs_lib_function, pdfi_error, pdfi_function_name, extra_info, file_line); | 563 | 24.2k | } | 564 | 24.2k | } |
pdf_page.c:pdfi_set_error_file_line Line | Count | Source | 556 | 3.69k | { | 557 | | /* ignore problems while repairing a file */ | 558 | 3.69k | if (!ctx->repairing) { | 559 | 3.69k | if (pdfi_error != 0) | 560 | 564 | ctx->pdf_errors[pdfi_error / (sizeof(char) * 8)] |= 1 << pdfi_error % (sizeof(char) * 8); | 561 | 3.69k | if (ctx->args.verbose_errors) | 562 | 0 | pdfi_verbose_error(ctx, gs_error, gs_lib_function, pdfi_error, pdfi_function_name, extra_info, file_line); | 563 | 3.69k | } | 564 | 3.69k | } |
pdf_annot.c:pdfi_set_error_file_line Line | Count | Source | 556 | 53.0k | { | 557 | | /* ignore problems while repairing a file */ | 558 | 53.0k | if (!ctx->repairing) { | 559 | 53.0k | if (pdfi_error != 0) | 560 | 53.0k | ctx->pdf_errors[pdfi_error / (sizeof(char) * 8)] |= 1 << pdfi_error % (sizeof(char) * 8); | 561 | 53.0k | if (ctx->args.verbose_errors) | 562 | 0 | pdfi_verbose_error(ctx, gs_error, gs_lib_function, pdfi_error, pdfi_function_name, extra_info, file_line); | 563 | 53.0k | } | 564 | 53.0k | } |
Unexecuted instantiation: pdf_mark.c:pdfi_set_error_file_line pdf_font.c:pdfi_set_error_file_line Line | Count | Source | 556 | 21.2k | { | 557 | | /* ignore problems while repairing a file */ | 558 | 21.2k | if (!ctx->repairing) { | 559 | 21.2k | if (pdfi_error != 0) | 560 | 21.2k | ctx->pdf_errors[pdfi_error / (sizeof(char) * 8)] |= 1 << pdfi_error % (sizeof(char) * 8); | 561 | 21.2k | if (ctx->args.verbose_errors) | 562 | 0 | pdfi_verbose_error(ctx, gs_error, gs_lib_function, pdfi_error, pdfi_function_name, extra_info, file_line); | 563 | 21.2k | } | 564 | 21.2k | } |
Unexecuted instantiation: pdf_font0.c:pdfi_set_error_file_line Unexecuted instantiation: pdf_ciddec.c:pdfi_set_error_file_line Unexecuted instantiation: pdf_font1.c:pdfi_set_error_file_line Unexecuted instantiation: pdf_font1C.c:pdfi_set_error_file_line Unexecuted instantiation: pdf_fontps.c:pdfi_set_error_file_line Unexecuted instantiation: pdf_font3.c:pdfi_set_error_file_line Unexecuted instantiation: pdf_fontTT.c:pdfi_set_error_file_line Unexecuted instantiation: pdf_font11.c:pdfi_set_error_file_line pdf_cmap.c:pdfi_set_error_file_line Line | Count | Source | 556 | 617 | { | 557 | | /* ignore problems while repairing a file */ | 558 | 617 | if (!ctx->repairing) { | 559 | 617 | if (pdfi_error != 0) | 560 | 617 | ctx->pdf_errors[pdfi_error / (sizeof(char) * 8)] |= 1 << pdfi_error % (sizeof(char) * 8); | 561 | 617 | if (ctx->args.verbose_errors) | 562 | 0 | pdfi_verbose_error(ctx, gs_error, gs_lib_function, pdfi_error, pdfi_function_name, extra_info, file_line); | 563 | 617 | } | 564 | 617 | } |
Unexecuted instantiation: pdf_fmap.c:pdfi_set_error_file_line Unexecuted instantiation: pdf_text.c:pdfi_set_error_file_line Unexecuted instantiation: pdf_shading.c:pdfi_set_error_file_line Unexecuted instantiation: pdf_func.c:pdfi_set_error_file_line pdf_trans.c:pdfi_set_error_file_line Line | Count | Source | 556 | 3.82k | { | 557 | | /* ignore problems while repairing a file */ | 558 | 3.82k | if (!ctx->repairing) { | 559 | 3.82k | if (pdfi_error != 0) | 560 | 3.82k | ctx->pdf_errors[pdfi_error / (sizeof(char) * 8)] |= 1 << pdfi_error % (sizeof(char) * 8); | 561 | 3.82k | if (ctx->args.verbose_errors) | 562 | 0 | pdfi_verbose_error(ctx, gs_error, gs_lib_function, pdfi_error, pdfi_function_name, extra_info, file_line); | 563 | 3.82k | } | 564 | 3.82k | } |
Unexecuted instantiation: pdf_device.c:pdfi_set_error_file_line Unexecuted instantiation: pdf_misc.c:pdfi_set_error_file_line Unexecuted instantiation: pdf_optcontent.c:pdfi_set_error_file_line pdf_check.c:pdfi_set_error_file_line Line | Count | Source | 556 | 183k | { | 557 | | /* ignore problems while repairing a file */ | 558 | 183k | if (!ctx->repairing) { | 559 | 183k | if (pdfi_error != 0) | 560 | 183k | ctx->pdf_errors[pdfi_error / (sizeof(char) * 8)] |= 1 << pdfi_error % (sizeof(char) * 8); | 561 | 183k | if (ctx->args.verbose_errors) | 562 | 0 | pdfi_verbose_error(ctx, gs_error, gs_lib_function, pdfi_error, pdfi_function_name, extra_info, file_line); | 563 | 183k | } | 564 | 183k | } |
pdf_sec.c:pdfi_set_error_file_line Line | Count | Source | 556 | 2 | { | 557 | | /* ignore problems while repairing a file */ | 558 | 2 | if (!ctx->repairing) { | 559 | 2 | if (pdfi_error != 0) | 560 | 2 | ctx->pdf_errors[pdfi_error / (sizeof(char) * 8)] |= 1 << pdfi_error % (sizeof(char) * 8); | 561 | 2 | if (ctx->args.verbose_errors) | 562 | 0 | pdfi_verbose_error(ctx, gs_error, gs_lib_function, pdfi_error, pdfi_function_name, extra_info, file_line); | 563 | 2 | } | 564 | 2 | } |
Unexecuted instantiation: pdf_utf8.c:pdfi_set_error_file_line pdf_deref.c:pdfi_set_error_file_line Line | Count | Source | 556 | 2.58M | { | 557 | | /* ignore problems while repairing a file */ | 558 | 2.58M | if (!ctx->repairing) { | 559 | 2.47M | if (pdfi_error != 0) | 560 | 2.47M | ctx->pdf_errors[pdfi_error / (sizeof(char) * 8)] |= 1 << pdfi_error % (sizeof(char) * 8); | 561 | 2.47M | if (ctx->args.verbose_errors) | 562 | 0 | pdfi_verbose_error(ctx, gs_error, gs_lib_function, pdfi_error, pdfi_function_name, extra_info, file_line); | 563 | 2.47M | } | 564 | 2.58M | } |
pdf_repair.c:pdfi_set_error_file_line Line | Count | Source | 556 | 850k | { | 557 | | /* ignore problems while repairing a file */ | 558 | 850k | if (!ctx->repairing) { | 559 | 846k | if (pdfi_error != 0) | 560 | 846k | ctx->pdf_errors[pdfi_error / (sizeof(char) * 8)] |= 1 << pdfi_error % (sizeof(char) * 8); | 561 | 846k | if (ctx->args.verbose_errors) | 562 | 0 | pdfi_verbose_error(ctx, gs_error, gs_lib_function, pdfi_error, pdfi_function_name, extra_info, file_line); | 563 | 846k | } | 564 | 850k | } |
Unexecuted instantiation: pdf_obj.c:pdfi_set_error_file_line pdf_doc.c:pdfi_set_error_file_line Line | Count | Source | 556 | 3.34k | { | 557 | | /* ignore problems while repairing a file */ | 558 | 3.34k | if (!ctx->repairing) { | 559 | 3.34k | if (pdfi_error != 0) | 560 | 3.34k | ctx->pdf_errors[pdfi_error / (sizeof(char) * 8)] |= 1 << pdfi_error % (sizeof(char) * 8); | 561 | 3.34k | if (ctx->args.verbose_errors) | 562 | 0 | pdfi_verbose_error(ctx, gs_error, gs_lib_function, pdfi_error, pdfi_function_name, extra_info, file_line); | 563 | 3.34k | } | 564 | 3.34k | } |
Unexecuted instantiation: pdf_fapi.c:pdfi_set_error_file_line |
565 | | |
566 | | static inline int pdfi_set_error_stop_file_line(pdf_context *ctx, int gs_error, const char *gs_lib_function, pdf_error pdfi_error, const char *pdfi_function_name, const char *extra_info, const char *file_line) |
567 | 25.3M | { |
568 | 25.3M | pdfi_set_error_file_line(ctx, gs_error, gs_lib_function, pdfi_error, pdfi_function_name, extra_info, file_line); |
569 | 25.3M | if (ctx->args.pdfstoponerror || gs_error == gs_error_Fatal || gs_error == gs_error_VMerror) { |
570 | 928 | if (gs_error < 0) |
571 | 928 | return gs_error; |
572 | 0 | else |
573 | 0 | return gs_error_unknownerror; |
574 | 928 | } |
575 | 25.3M | return 0; |
576 | 25.3M | } Unexecuted instantiation: zpdfops.c:pdfi_set_error_stop_file_line Unexecuted instantiation: pdf_loop_detect.c:pdfi_set_error_stop_file_line ghostpdf.c:pdfi_set_error_stop_file_line Line | Count | Source | 567 | 55.8k | { | 568 | 55.8k | pdfi_set_error_file_line(ctx, gs_error, gs_lib_function, pdfi_error, pdfi_function_name, extra_info, file_line); | 569 | 55.8k | if (ctx->args.pdfstoponerror || gs_error == gs_error_Fatal || gs_error == gs_error_VMerror) { | 570 | 0 | if (gs_error < 0) | 571 | 0 | return gs_error; | 572 | 0 | else | 573 | 0 | return gs_error_unknownerror; | 574 | 0 | } | 575 | 55.8k | return 0; | 576 | 55.8k | } |
Unexecuted instantiation: pdf_dict.c:pdfi_set_error_stop_file_line Unexecuted instantiation: pdf_array.c:pdfi_set_error_stop_file_line pdf_xref.c:pdfi_set_error_stop_file_line Line | Count | Source | 567 | 20.5k | { | 568 | 20.5k | pdfi_set_error_file_line(ctx, gs_error, gs_lib_function, pdfi_error, pdfi_function_name, extra_info, file_line); | 569 | 20.5k | if (ctx->args.pdfstoponerror || gs_error == gs_error_Fatal || gs_error == gs_error_VMerror) { | 570 | 0 | if (gs_error < 0) | 571 | 0 | return gs_error; | 572 | 0 | else | 573 | 0 | return gs_error_unknownerror; | 574 | 0 | } | 575 | 20.5k | return 0; | 576 | 20.5k | } |
pdf_int.c:pdfi_set_error_stop_file_line Line | Count | Source | 567 | 24.3M | { | 568 | 24.3M | pdfi_set_error_file_line(ctx, gs_error, gs_lib_function, pdfi_error, pdfi_function_name, extra_info, file_line); | 569 | 24.3M | if (ctx->args.pdfstoponerror || gs_error == gs_error_Fatal || gs_error == gs_error_VMerror) { | 570 | 923 | if (gs_error < 0) | 571 | 923 | return gs_error; | 572 | 0 | else | 573 | 0 | return gs_error_unknownerror; | 574 | 923 | } | 575 | 24.2M | return 0; | 576 | 24.3M | } |
Unexecuted instantiation: pdf_file.c:pdfi_set_error_stop_file_line Unexecuted instantiation: pdf_path.c:pdfi_set_error_stop_file_line pdf_colour.c:pdfi_set_error_stop_file_line Line | Count | Source | 567 | 149 | { | 568 | 149 | pdfi_set_error_file_line(ctx, gs_error, gs_lib_function, pdfi_error, pdfi_function_name, extra_info, file_line); | 569 | 149 | if (ctx->args.pdfstoponerror || gs_error == gs_error_Fatal || gs_error == gs_error_VMerror) { | 570 | 0 | if (gs_error < 0) | 571 | 0 | return gs_error; | 572 | 0 | else | 573 | 0 | return gs_error_unknownerror; | 574 | 0 | } | 575 | 149 | return 0; | 576 | 149 | } |
Unexecuted instantiation: pdf_pattern.c:pdfi_set_error_stop_file_line pdf_gstate.c:pdfi_set_error_stop_file_line Line | Count | Source | 567 | 85 | { | 568 | 85 | pdfi_set_error_file_line(ctx, gs_error, gs_lib_function, pdfi_error, pdfi_function_name, extra_info, file_line); | 569 | 85 | if (ctx->args.pdfstoponerror || gs_error == gs_error_Fatal || gs_error == gs_error_VMerror) { | 570 | 0 | if (gs_error < 0) | 571 | 0 | return gs_error; | 572 | 0 | else | 573 | 0 | return gs_error_unknownerror; | 574 | 0 | } | 575 | 85 | return 0; | 576 | 85 | } |
Unexecuted instantiation: pdf_stack.c:pdfi_set_error_stop_file_line pdf_image.c:pdfi_set_error_stop_file_line Line | Count | Source | 567 | 14.9k | { | 568 | 14.9k | pdfi_set_error_file_line(ctx, gs_error, gs_lib_function, pdfi_error, pdfi_function_name, extra_info, file_line); | 569 | 14.9k | if (ctx->args.pdfstoponerror || gs_error == gs_error_Fatal || gs_error == gs_error_VMerror) { | 570 | 0 | if (gs_error < 0) | 571 | 0 | return gs_error; | 572 | 0 | else | 573 | 0 | return gs_error_unknownerror; | 574 | 0 | } | 575 | 14.9k | return 0; | 576 | 14.9k | } |
pdf_page.c:pdfi_set_error_stop_file_line Line | Count | Source | 567 | 3.69k | { | 568 | 3.69k | pdfi_set_error_file_line(ctx, gs_error, gs_lib_function, pdfi_error, pdfi_function_name, extra_info, file_line); | 569 | 3.69k | if (ctx->args.pdfstoponerror || gs_error == gs_error_Fatal || gs_error == gs_error_VMerror) { | 570 | 3 | if (gs_error < 0) | 571 | 3 | return gs_error; | 572 | 0 | else | 573 | 0 | return gs_error_unknownerror; | 574 | 3 | } | 575 | 3.69k | return 0; | 576 | 3.69k | } |
pdf_annot.c:pdfi_set_error_stop_file_line Line | Count | Source | 567 | 53.0k | { | 568 | 53.0k | pdfi_set_error_file_line(ctx, gs_error, gs_lib_function, pdfi_error, pdfi_function_name, extra_info, file_line); | 569 | 53.0k | if (ctx->args.pdfstoponerror || gs_error == gs_error_Fatal || gs_error == gs_error_VMerror) { | 570 | 2 | if (gs_error < 0) | 571 | 2 | return gs_error; | 572 | 0 | else | 573 | 0 | return gs_error_unknownerror; | 574 | 2 | } | 575 | 53.0k | return 0; | 576 | 53.0k | } |
Unexecuted instantiation: pdf_mark.c:pdfi_set_error_stop_file_line pdf_font.c:pdfi_set_error_stop_file_line Line | Count | Source | 567 | 21.2k | { | 568 | 21.2k | pdfi_set_error_file_line(ctx, gs_error, gs_lib_function, pdfi_error, pdfi_function_name, extra_info, file_line); | 569 | 21.2k | if (ctx->args.pdfstoponerror || gs_error == gs_error_Fatal || gs_error == gs_error_VMerror) { | 570 | 0 | if (gs_error < 0) | 571 | 0 | return gs_error; | 572 | 0 | else | 573 | 0 | return gs_error_unknownerror; | 574 | 0 | } | 575 | 21.2k | return 0; | 576 | 21.2k | } |
Unexecuted instantiation: pdf_font0.c:pdfi_set_error_stop_file_line Unexecuted instantiation: pdf_ciddec.c:pdfi_set_error_stop_file_line Unexecuted instantiation: pdf_font1.c:pdfi_set_error_stop_file_line Unexecuted instantiation: pdf_font1C.c:pdfi_set_error_stop_file_line Unexecuted instantiation: pdf_fontps.c:pdfi_set_error_stop_file_line Unexecuted instantiation: pdf_font3.c:pdfi_set_error_stop_file_line Unexecuted instantiation: pdf_fontTT.c:pdfi_set_error_stop_file_line Unexecuted instantiation: pdf_font11.c:pdfi_set_error_stop_file_line Unexecuted instantiation: pdf_cmap.c:pdfi_set_error_stop_file_line Unexecuted instantiation: pdf_fmap.c:pdfi_set_error_stop_file_line Unexecuted instantiation: pdf_text.c:pdfi_set_error_stop_file_line Unexecuted instantiation: pdf_shading.c:pdfi_set_error_stop_file_line Unexecuted instantiation: pdf_func.c:pdfi_set_error_stop_file_line pdf_trans.c:pdfi_set_error_stop_file_line Line | Count | Source | 567 | 3.75k | { | 568 | 3.75k | pdfi_set_error_file_line(ctx, gs_error, gs_lib_function, pdfi_error, pdfi_function_name, extra_info, file_line); | 569 | 3.75k | if (ctx->args.pdfstoponerror || gs_error == gs_error_Fatal || gs_error == gs_error_VMerror) { | 570 | 0 | if (gs_error < 0) | 571 | 0 | return gs_error; | 572 | 0 | else | 573 | 0 | return gs_error_unknownerror; | 574 | 0 | } | 575 | 3.75k | return 0; | 576 | 3.75k | } |
Unexecuted instantiation: pdf_device.c:pdfi_set_error_stop_file_line Unexecuted instantiation: pdf_misc.c:pdfi_set_error_stop_file_line Unexecuted instantiation: pdf_optcontent.c:pdfi_set_error_stop_file_line pdf_check.c:pdfi_set_error_stop_file_line Line | Count | Source | 567 | 183k | { | 568 | 183k | pdfi_set_error_file_line(ctx, gs_error, gs_lib_function, pdfi_error, pdfi_function_name, extra_info, file_line); | 569 | 183k | if (ctx->args.pdfstoponerror || gs_error == gs_error_Fatal || gs_error == gs_error_VMerror) { | 570 | 0 | if (gs_error < 0) | 571 | 0 | return gs_error; | 572 | 0 | else | 573 | 0 | return gs_error_unknownerror; | 574 | 0 | } | 575 | 183k | return 0; | 576 | 183k | } |
pdf_sec.c:pdfi_set_error_stop_file_line Line | Count | Source | 567 | 2 | { | 568 | 2 | pdfi_set_error_file_line(ctx, gs_error, gs_lib_function, pdfi_error, pdfi_function_name, extra_info, file_line); | 569 | 2 | if (ctx->args.pdfstoponerror || gs_error == gs_error_Fatal || gs_error == gs_error_VMerror) { | 570 | 0 | if (gs_error < 0) | 571 | 0 | return gs_error; | 572 | 0 | else | 573 | 0 | return gs_error_unknownerror; | 574 | 0 | } | 575 | 2 | return 0; | 576 | 2 | } |
Unexecuted instantiation: pdf_utf8.c:pdfi_set_error_stop_file_line pdf_deref.c:pdfi_set_error_stop_file_line Line | Count | Source | 567 | 619k | { | 568 | 619k | pdfi_set_error_file_line(ctx, gs_error, gs_lib_function, pdfi_error, pdfi_function_name, extra_info, file_line); | 569 | 619k | if (ctx->args.pdfstoponerror || gs_error == gs_error_Fatal || gs_error == gs_error_VMerror) { | 570 | 0 | if (gs_error < 0) | 571 | 0 | return gs_error; | 572 | 0 | else | 573 | 0 | return gs_error_unknownerror; | 574 | 0 | } | 575 | 619k | return 0; | 576 | 619k | } |
pdf_repair.c:pdfi_set_error_stop_file_line Line | Count | Source | 567 | 90.9k | { | 568 | 90.9k | pdfi_set_error_file_line(ctx, gs_error, gs_lib_function, pdfi_error, pdfi_function_name, extra_info, file_line); | 569 | 90.9k | if (ctx->args.pdfstoponerror || gs_error == gs_error_Fatal || gs_error == gs_error_VMerror) { | 570 | 0 | if (gs_error < 0) | 571 | 0 | return gs_error; | 572 | 0 | else | 573 | 0 | return gs_error_unknownerror; | 574 | 0 | } | 575 | 90.9k | return 0; | 576 | 90.9k | } |
Unexecuted instantiation: pdf_obj.c:pdfi_set_error_stop_file_line pdf_doc.c:pdfi_set_error_stop_file_line Line | Count | Source | 567 | 3.19k | { | 568 | 3.19k | pdfi_set_error_file_line(ctx, gs_error, gs_lib_function, pdfi_error, pdfi_function_name, extra_info, file_line); | 569 | 3.19k | if (ctx->args.pdfstoponerror || gs_error == gs_error_Fatal || gs_error == gs_error_VMerror) { | 570 | 0 | if (gs_error < 0) | 571 | 0 | return gs_error; | 572 | 0 | else | 573 | 0 | return gs_error_unknownerror; | 574 | 0 | } | 575 | 3.19k | return 0; | 576 | 3.19k | } |
Unexecuted instantiation: pdf_fapi.c:pdfi_set_error_stop_file_line |
577 | | |
578 | | static inline void pdfi_set_warning_file_line(pdf_context *ctx, int gs_error, const char *gs_lib_function, pdf_warning pdfi_warning, const char *pdfi_function_name, const char *extra_info, const char *file_line) |
579 | 4.78M | { |
580 | | /* ignore problems while repairing a file */ |
581 | 4.78M | if (!ctx->repairing) { |
582 | 4.43M | ctx->pdf_warnings[pdfi_warning / (sizeof(char) * 8)] |= 1 << pdfi_warning % (sizeof(char) * 8); |
583 | 4.43M | if (ctx->args.verbose_warnings) |
584 | 0 | pdfi_verbose_warning(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info, file_line); |
585 | 4.43M | } |
586 | 4.78M | } Unexecuted instantiation: zpdfops.c:pdfi_set_warning_file_line Unexecuted instantiation: pdf_loop_detect.c:pdfi_set_warning_file_line ghostpdf.c:pdfi_set_warning_file_line Line | Count | Source | 579 | 4.49k | { | 580 | | /* ignore problems while repairing a file */ | 581 | 4.49k | if (!ctx->repairing) { | 582 | 4.49k | ctx->pdf_warnings[pdfi_warning / (sizeof(char) * 8)] |= 1 << pdfi_warning % (sizeof(char) * 8); | 583 | 4.49k | if (ctx->args.verbose_warnings) | 584 | 0 | pdfi_verbose_warning(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info, file_line); | 585 | 4.49k | } | 586 | 4.49k | } |
pdf_dict.c:pdfi_set_warning_file_line Line | Count | Source | 579 | 2.24k | { | 580 | | /* ignore problems while repairing a file */ | 581 | 2.24k | if (!ctx->repairing) { | 582 | 2.23k | ctx->pdf_warnings[pdfi_warning / (sizeof(char) * 8)] |= 1 << pdfi_warning % (sizeof(char) * 8); | 583 | 2.23k | if (ctx->args.verbose_warnings) | 584 | 0 | pdfi_verbose_warning(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info, file_line); | 585 | 2.23k | } | 586 | 2.24k | } |
Unexecuted instantiation: pdf_array.c:pdfi_set_warning_file_line pdf_xref.c:pdfi_set_warning_file_line Line | Count | Source | 579 | 21.2k | { | 580 | | /* ignore problems while repairing a file */ | 581 | 21.2k | if (!ctx->repairing) { | 582 | 21.2k | ctx->pdf_warnings[pdfi_warning / (sizeof(char) * 8)] |= 1 << pdfi_warning % (sizeof(char) * 8); | 583 | 21.2k | if (ctx->args.verbose_warnings) | 584 | 0 | pdfi_verbose_warning(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info, file_line); | 585 | 21.2k | } | 586 | 21.2k | } |
pdf_int.c:pdfi_set_warning_file_line Line | Count | Source | 579 | 905k | { | 580 | | /* ignore problems while repairing a file */ | 581 | 905k | if (!ctx->repairing) { | 582 | 552k | ctx->pdf_warnings[pdfi_warning / (sizeof(char) * 8)] |= 1 << pdfi_warning % (sizeof(char) * 8); | 583 | 552k | if (ctx->args.verbose_warnings) | 584 | 0 | pdfi_verbose_warning(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info, file_line); | 585 | 552k | } | 586 | 905k | } |
pdf_file.c:pdfi_set_warning_file_line Line | Count | Source | 579 | 335 | { | 580 | | /* ignore problems while repairing a file */ | 581 | 335 | if (!ctx->repairing) { | 582 | 332 | ctx->pdf_warnings[pdfi_warning / (sizeof(char) * 8)] |= 1 << pdfi_warning % (sizeof(char) * 8); | 583 | 332 | if (ctx->args.verbose_warnings) | 584 | 0 | pdfi_verbose_warning(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info, file_line); | 585 | 332 | } | 586 | 335 | } |
pdf_path.c:pdfi_set_warning_file_line Line | Count | Source | 579 | 1.74M | { | 580 | | /* ignore problems while repairing a file */ | 581 | 1.74M | if (!ctx->repairing) { | 582 | 1.74M | ctx->pdf_warnings[pdfi_warning / (sizeof(char) * 8)] |= 1 << pdfi_warning % (sizeof(char) * 8); | 583 | 1.74M | if (ctx->args.verbose_warnings) | 584 | 0 | pdfi_verbose_warning(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info, file_line); | 585 | 1.74M | } | 586 | 1.74M | } |
pdf_colour.c:pdfi_set_warning_file_line Line | Count | Source | 579 | 99.1k | { | 580 | | /* ignore problems while repairing a file */ | 581 | 99.1k | if (!ctx->repairing) { | 582 | 99.1k | ctx->pdf_warnings[pdfi_warning / (sizeof(char) * 8)] |= 1 << pdfi_warning % (sizeof(char) * 8); | 583 | 99.1k | if (ctx->args.verbose_warnings) | 584 | 0 | pdfi_verbose_warning(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info, file_line); | 585 | 99.1k | } | 586 | 99.1k | } |
pdf_pattern.c:pdfi_set_warning_file_line Line | Count | Source | 579 | 714 | { | 580 | | /* ignore problems while repairing a file */ | 581 | 714 | if (!ctx->repairing) { | 582 | 714 | ctx->pdf_warnings[pdfi_warning / (sizeof(char) * 8)] |= 1 << pdfi_warning % (sizeof(char) * 8); | 583 | 714 | if (ctx->args.verbose_warnings) | 584 | 0 | pdfi_verbose_warning(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info, file_line); | 585 | 714 | } | 586 | 714 | } |
pdf_gstate.c:pdfi_set_warning_file_line Line | Count | Source | 579 | 361k | { | 580 | | /* ignore problems while repairing a file */ | 581 | 361k | if (!ctx->repairing) { | 582 | 361k | ctx->pdf_warnings[pdfi_warning / (sizeof(char) * 8)] |= 1 << pdfi_warning % (sizeof(char) * 8); | 583 | 361k | if (ctx->args.verbose_warnings) | 584 | 0 | pdfi_verbose_warning(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info, file_line); | 585 | 361k | } | 586 | 361k | } |
pdf_stack.c:pdfi_set_warning_file_line Line | Count | Source | 579 | 41.1k | { | 580 | | /* ignore problems while repairing a file */ | 581 | 41.1k | if (!ctx->repairing) { | 582 | 41.1k | ctx->pdf_warnings[pdfi_warning / (sizeof(char) * 8)] |= 1 << pdfi_warning % (sizeof(char) * 8); | 583 | 41.1k | if (ctx->args.verbose_warnings) | 584 | 0 | pdfi_verbose_warning(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info, file_line); | 585 | 41.1k | } | 586 | 41.1k | } |
pdf_image.c:pdfi_set_warning_file_line Line | Count | Source | 579 | 63.0k | { | 580 | | /* ignore problems while repairing a file */ | 581 | 63.0k | if (!ctx->repairing) { | 582 | 63.0k | ctx->pdf_warnings[pdfi_warning / (sizeof(char) * 8)] |= 1 << pdfi_warning % (sizeof(char) * 8); | 583 | 63.0k | if (ctx->args.verbose_warnings) | 584 | 0 | pdfi_verbose_warning(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info, file_line); | 585 | 63.0k | } | 586 | 63.0k | } |
pdf_page.c:pdfi_set_warning_file_line Line | Count | Source | 579 | 18.1k | { | 580 | | /* ignore problems while repairing a file */ | 581 | 18.1k | if (!ctx->repairing) { | 582 | 18.1k | ctx->pdf_warnings[pdfi_warning / (sizeof(char) * 8)] |= 1 << pdfi_warning % (sizeof(char) * 8); | 583 | 18.1k | if (ctx->args.verbose_warnings) | 584 | 0 | pdfi_verbose_warning(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info, file_line); | 585 | 18.1k | } | 586 | 18.1k | } |
pdf_annot.c:pdfi_set_warning_file_line Line | Count | Source | 579 | 79.9k | { | 580 | | /* ignore problems while repairing a file */ | 581 | 79.9k | if (!ctx->repairing) { | 582 | 79.9k | ctx->pdf_warnings[pdfi_warning / (sizeof(char) * 8)] |= 1 << pdfi_warning % (sizeof(char) * 8); | 583 | 79.9k | if (ctx->args.verbose_warnings) | 584 | 0 | pdfi_verbose_warning(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info, file_line); | 585 | 79.9k | } | 586 | 79.9k | } |
Unexecuted instantiation: pdf_mark.c:pdfi_set_warning_file_line pdf_font.c:pdfi_set_warning_file_line Line | Count | Source | 579 | 4.23k | { | 580 | | /* ignore problems while repairing a file */ | 581 | 4.23k | if (!ctx->repairing) { | 582 | 4.23k | ctx->pdf_warnings[pdfi_warning / (sizeof(char) * 8)] |= 1 << pdfi_warning % (sizeof(char) * 8); | 583 | 4.23k | if (ctx->args.verbose_warnings) | 584 | 0 | pdfi_verbose_warning(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info, file_line); | 585 | 4.23k | } | 586 | 4.23k | } |
Unexecuted instantiation: pdf_font0.c:pdfi_set_warning_file_line Unexecuted instantiation: pdf_ciddec.c:pdfi_set_warning_file_line Unexecuted instantiation: pdf_font1.c:pdfi_set_warning_file_line Unexecuted instantiation: pdf_font1C.c:pdfi_set_warning_file_line pdf_fontps.c:pdfi_set_warning_file_line Line | Count | Source | 579 | 2 | { | 580 | | /* ignore problems while repairing a file */ | 581 | 2 | if (!ctx->repairing) { | 582 | 2 | ctx->pdf_warnings[pdfi_warning / (sizeof(char) * 8)] |= 1 << pdfi_warning % (sizeof(char) * 8); | 583 | 2 | if (ctx->args.verbose_warnings) | 584 | 0 | pdfi_verbose_warning(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info, file_line); | 585 | 2 | } | 586 | 2 | } |
pdf_font3.c:pdfi_set_warning_file_line Line | Count | Source | 579 | 5 | { | 580 | | /* ignore problems while repairing a file */ | 581 | 5 | if (!ctx->repairing) { | 582 | 5 | ctx->pdf_warnings[pdfi_warning / (sizeof(char) * 8)] |= 1 << pdfi_warning % (sizeof(char) * 8); | 583 | 5 | if (ctx->args.verbose_warnings) | 584 | 0 | pdfi_verbose_warning(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info, file_line); | 585 | 5 | } | 586 | 5 | } |
Unexecuted instantiation: pdf_fontTT.c:pdfi_set_warning_file_line Unexecuted instantiation: pdf_font11.c:pdfi_set_warning_file_line pdf_cmap.c:pdfi_set_warning_file_line Line | Count | Source | 579 | 682 | { | 580 | | /* ignore problems while repairing a file */ | 581 | 682 | if (!ctx->repairing) { | 582 | 682 | ctx->pdf_warnings[pdfi_warning / (sizeof(char) * 8)] |= 1 << pdfi_warning % (sizeof(char) * 8); | 583 | 682 | if (ctx->args.verbose_warnings) | 584 | 0 | pdfi_verbose_warning(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info, file_line); | 585 | 682 | } | 586 | 682 | } |
Unexecuted instantiation: pdf_fmap.c:pdfi_set_warning_file_line pdf_text.c:pdfi_set_warning_file_line Line | Count | Source | 579 | 514k | { | 580 | | /* ignore problems while repairing a file */ | 581 | 514k | if (!ctx->repairing) { | 582 | 514k | ctx->pdf_warnings[pdfi_warning / (sizeof(char) * 8)] |= 1 << pdfi_warning % (sizeof(char) * 8); | 583 | 514k | if (ctx->args.verbose_warnings) | 584 | 0 | pdfi_verbose_warning(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info, file_line); | 585 | 514k | } | 586 | 514k | } |
pdf_shading.c:pdfi_set_warning_file_line Line | Count | Source | 579 | 3.61k | { | 580 | | /* ignore problems while repairing a file */ | 581 | 3.61k | if (!ctx->repairing) { | 582 | 3.61k | ctx->pdf_warnings[pdfi_warning / (sizeof(char) * 8)] |= 1 << pdfi_warning % (sizeof(char) * 8); | 583 | 3.61k | if (ctx->args.verbose_warnings) | 584 | 0 | pdfi_verbose_warning(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info, file_line); | 585 | 3.61k | } | 586 | 3.61k | } |
Unexecuted instantiation: pdf_func.c:pdfi_set_warning_file_line pdf_trans.c:pdfi_set_warning_file_line Line | Count | Source | 579 | 350 | { | 580 | | /* ignore problems while repairing a file */ | 581 | 350 | if (!ctx->repairing) { | 582 | 350 | ctx->pdf_warnings[pdfi_warning / (sizeof(char) * 8)] |= 1 << pdfi_warning % (sizeof(char) * 8); | 583 | 350 | if (ctx->args.verbose_warnings) | 584 | 0 | pdfi_verbose_warning(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info, file_line); | 585 | 350 | } | 586 | 350 | } |
Unexecuted instantiation: pdf_device.c:pdfi_set_warning_file_line pdf_misc.c:pdfi_set_warning_file_line Line | Count | Source | 579 | 1.14k | { | 580 | | /* ignore problems while repairing a file */ | 581 | 1.14k | if (!ctx->repairing) { | 582 | 1.14k | ctx->pdf_warnings[pdfi_warning / (sizeof(char) * 8)] |= 1 << pdfi_warning % (sizeof(char) * 8); | 583 | 1.14k | if (ctx->args.verbose_warnings) | 584 | 0 | pdfi_verbose_warning(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info, file_line); | 585 | 1.14k | } | 586 | 1.14k | } |
Unexecuted instantiation: pdf_optcontent.c:pdfi_set_warning_file_line pdf_check.c:pdfi_set_warning_file_line Line | Count | Source | 579 | 9.59k | { | 580 | | /* ignore problems while repairing a file */ | 581 | 9.59k | if (!ctx->repairing) { | 582 | 9.59k | ctx->pdf_warnings[pdfi_warning / (sizeof(char) * 8)] |= 1 << pdfi_warning % (sizeof(char) * 8); | 583 | 9.59k | if (ctx->args.verbose_warnings) | 584 | 0 | pdfi_verbose_warning(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info, file_line); | 585 | 9.59k | } | 586 | 9.59k | } |
pdf_sec.c:pdfi_set_warning_file_line Line | Count | Source | 579 | 788 | { | 580 | | /* ignore problems while repairing a file */ | 581 | 788 | if (!ctx->repairing) { | 582 | 788 | ctx->pdf_warnings[pdfi_warning / (sizeof(char) * 8)] |= 1 << pdfi_warning % (sizeof(char) * 8); | 583 | 788 | if (ctx->args.verbose_warnings) | 584 | 0 | pdfi_verbose_warning(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info, file_line); | 585 | 788 | } | 586 | 788 | } |
Unexecuted instantiation: pdf_utf8.c:pdfi_set_warning_file_line pdf_deref.c:pdfi_set_warning_file_line Line | Count | Source | 579 | 4.77k | { | 580 | | /* ignore problems while repairing a file */ | 581 | 4.77k | if (!ctx->repairing) { | 582 | 4.77k | ctx->pdf_warnings[pdfi_warning / (sizeof(char) * 8)] |= 1 << pdfi_warning % (sizeof(char) * 8); | 583 | 4.77k | if (ctx->args.verbose_warnings) | 584 | 0 | pdfi_verbose_warning(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info, file_line); | 585 | 4.77k | } | 586 | 4.77k | } |
Unexecuted instantiation: pdf_repair.c:pdfi_set_warning_file_line Unexecuted instantiation: pdf_obj.c:pdfi_set_warning_file_line pdf_doc.c:pdfi_set_warning_file_line Line | Count | Source | 579 | 903k | { | 580 | | /* ignore problems while repairing a file */ | 581 | 903k | if (!ctx->repairing) { | 582 | 903k | ctx->pdf_warnings[pdfi_warning / (sizeof(char) * 8)] |= 1 << pdfi_warning % (sizeof(char) * 8); | 583 | 903k | if (ctx->args.verbose_warnings) | 584 | 0 | pdfi_verbose_warning(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info, file_line); | 585 | 903k | } | 586 | 903k | } |
pdf_fapi.c:pdfi_set_warning_file_line Line | Count | Source | 579 | 2.00k | { | 580 | | /* ignore problems while repairing a file */ | 581 | 2.00k | if (!ctx->repairing) { | 582 | 2.00k | ctx->pdf_warnings[pdfi_warning / (sizeof(char) * 8)] |= 1 << pdfi_warning % (sizeof(char) * 8); | 583 | 2.00k | if (ctx->args.verbose_warnings) | 584 | 0 | pdfi_verbose_warning(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info, file_line); | 585 | 2.00k | } | 586 | 2.00k | } |
|
587 | | |
588 | | static inline int pdfi_set_warning_stop_file_line(pdf_context *ctx, int gs_error, const char *gs_lib_function, pdf_warning pdfi_warning, const char *pdfi_function_name, const char *extra_info, const char *file_line) |
589 | 303k | { |
590 | 303k | pdfi_set_warning_file_line(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info, file_line); |
591 | 303k | if (ctx->args.pdfstoponwarning || gs_error == gs_error_Fatal || gs_error == gs_error_VMerror) { |
592 | 12 | if (gs_error < 0) |
593 | 12 | return gs_error; |
594 | 0 | else |
595 | 0 | return gs_error_unknownerror; |
596 | 12 | } |
597 | 303k | return 0; |
598 | 303k | } Unexecuted instantiation: zpdfops.c:pdfi_set_warning_stop_file_line Unexecuted instantiation: pdf_loop_detect.c:pdfi_set_warning_stop_file_line ghostpdf.c:pdfi_set_warning_stop_file_line Line | Count | Source | 589 | 4.49k | { | 590 | 4.49k | pdfi_set_warning_file_line(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info, file_line); | 591 | 4.49k | if (ctx->args.pdfstoponwarning || gs_error == gs_error_Fatal || gs_error == gs_error_VMerror) { | 592 | 0 | if (gs_error < 0) | 593 | 0 | return gs_error; | 594 | 0 | else | 595 | 0 | return gs_error_unknownerror; | 596 | 0 | } | 597 | 4.49k | return 0; | 598 | 4.49k | } |
Unexecuted instantiation: pdf_dict.c:pdfi_set_warning_stop_file_line Unexecuted instantiation: pdf_array.c:pdfi_set_warning_stop_file_line Unexecuted instantiation: pdf_xref.c:pdfi_set_warning_stop_file_line Unexecuted instantiation: pdf_int.c:pdfi_set_warning_stop_file_line pdf_file.c:pdfi_set_warning_stop_file_line Line | Count | Source | 589 | 335 | { | 590 | 335 | pdfi_set_warning_file_line(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info, file_line); | 591 | 335 | if (ctx->args.pdfstoponwarning || gs_error == gs_error_Fatal || gs_error == gs_error_VMerror) { | 592 | 0 | if (gs_error < 0) | 593 | 0 | return gs_error; | 594 | 0 | else | 595 | 0 | return gs_error_unknownerror; | 596 | 0 | } | 597 | 335 | return 0; | 598 | 335 | } |
Unexecuted instantiation: pdf_path.c:pdfi_set_warning_stop_file_line pdf_colour.c:pdfi_set_warning_stop_file_line Line | Count | Source | 589 | 34.1k | { | 590 | 34.1k | pdfi_set_warning_file_line(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info, file_line); | 591 | 34.1k | if (ctx->args.pdfstoponwarning || gs_error == gs_error_Fatal || gs_error == gs_error_VMerror) { | 592 | 0 | if (gs_error < 0) | 593 | 0 | return gs_error; | 594 | 0 | else | 595 | 0 | return gs_error_unknownerror; | 596 | 0 | } | 597 | 34.1k | return 0; | 598 | 34.1k | } |
Unexecuted instantiation: pdf_pattern.c:pdfi_set_warning_stop_file_line Unexecuted instantiation: pdf_gstate.c:pdfi_set_warning_stop_file_line Unexecuted instantiation: pdf_stack.c:pdfi_set_warning_stop_file_line pdf_image.c:pdfi_set_warning_stop_file_line Line | Count | Source | 589 | 62.7k | { | 590 | 62.7k | pdfi_set_warning_file_line(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info, file_line); | 591 | 62.7k | if (ctx->args.pdfstoponwarning || gs_error == gs_error_Fatal || gs_error == gs_error_VMerror) { | 592 | 12 | if (gs_error < 0) | 593 | 12 | return gs_error; | 594 | 0 | else | 595 | 0 | return gs_error_unknownerror; | 596 | 12 | } | 597 | 62.7k | return 0; | 598 | 62.7k | } |
Unexecuted instantiation: pdf_page.c:pdfi_set_warning_stop_file_line pdf_annot.c:pdfi_set_warning_stop_file_line Line | Count | Source | 589 | 79.9k | { | 590 | 79.9k | pdfi_set_warning_file_line(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info, file_line); | 591 | 79.9k | if (ctx->args.pdfstoponwarning || gs_error == gs_error_Fatal || gs_error == gs_error_VMerror) { | 592 | 0 | if (gs_error < 0) | 593 | 0 | return gs_error; | 594 | 0 | else | 595 | 0 | return gs_error_unknownerror; | 596 | 0 | } | 597 | 79.9k | return 0; | 598 | 79.9k | } |
Unexecuted instantiation: pdf_mark.c:pdfi_set_warning_stop_file_line Unexecuted instantiation: pdf_font.c:pdfi_set_warning_stop_file_line Unexecuted instantiation: pdf_font0.c:pdfi_set_warning_stop_file_line Unexecuted instantiation: pdf_ciddec.c:pdfi_set_warning_stop_file_line Unexecuted instantiation: pdf_font1.c:pdfi_set_warning_stop_file_line Unexecuted instantiation: pdf_font1C.c:pdfi_set_warning_stop_file_line Unexecuted instantiation: pdf_fontps.c:pdfi_set_warning_stop_file_line Unexecuted instantiation: pdf_font3.c:pdfi_set_warning_stop_file_line Unexecuted instantiation: pdf_fontTT.c:pdfi_set_warning_stop_file_line Unexecuted instantiation: pdf_font11.c:pdfi_set_warning_stop_file_line pdf_cmap.c:pdfi_set_warning_stop_file_line Line | Count | Source | 589 | 682 | { | 590 | 682 | pdfi_set_warning_file_line(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info, file_line); | 591 | 682 | if (ctx->args.pdfstoponwarning || gs_error == gs_error_Fatal || gs_error == gs_error_VMerror) { | 592 | 0 | if (gs_error < 0) | 593 | 0 | return gs_error; | 594 | 0 | else | 595 | 0 | return gs_error_unknownerror; | 596 | 0 | } | 597 | 682 | return 0; | 598 | 682 | } |
Unexecuted instantiation: pdf_fmap.c:pdfi_set_warning_stop_file_line pdf_text.c:pdfi_set_warning_stop_file_line Line | Count | Source | 589 | 76.1k | { | 590 | 76.1k | pdfi_set_warning_file_line(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info, file_line); | 591 | 76.1k | if (ctx->args.pdfstoponwarning || gs_error == gs_error_Fatal || gs_error == gs_error_VMerror) { | 592 | 0 | if (gs_error < 0) | 593 | 0 | return gs_error; | 594 | 0 | else | 595 | 0 | return gs_error_unknownerror; | 596 | 0 | } | 597 | 76.1k | return 0; | 598 | 76.1k | } |
Unexecuted instantiation: pdf_shading.c:pdfi_set_warning_stop_file_line Unexecuted instantiation: pdf_func.c:pdfi_set_warning_stop_file_line Unexecuted instantiation: pdf_trans.c:pdfi_set_warning_stop_file_line Unexecuted instantiation: pdf_device.c:pdfi_set_warning_stop_file_line Unexecuted instantiation: pdf_misc.c:pdfi_set_warning_stop_file_line Unexecuted instantiation: pdf_optcontent.c:pdfi_set_warning_stop_file_line Unexecuted instantiation: pdf_check.c:pdfi_set_warning_stop_file_line Unexecuted instantiation: pdf_sec.c:pdfi_set_warning_stop_file_line Unexecuted instantiation: pdf_utf8.c:pdfi_set_warning_stop_file_line Unexecuted instantiation: pdf_deref.c:pdfi_set_warning_stop_file_line Unexecuted instantiation: pdf_repair.c:pdfi_set_warning_stop_file_line Unexecuted instantiation: pdf_obj.c:pdfi_set_warning_stop_file_line pdf_doc.c:pdfi_set_warning_stop_file_line Line | Count | Source | 589 | 43.0k | { | 590 | 43.0k | pdfi_set_warning_file_line(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info, file_line); | 591 | 43.0k | if (ctx->args.pdfstoponwarning || gs_error == gs_error_Fatal || gs_error == gs_error_VMerror) { | 592 | 0 | if (gs_error < 0) | 593 | 0 | return gs_error; | 594 | 0 | else | 595 | 0 | return gs_error_unknownerror; | 596 | 0 | } | 597 | 43.0k | return 0; | 598 | 43.0k | } |
pdf_fapi.c:pdfi_set_warning_stop_file_line Line | Count | Source | 589 | 2.00k | { | 590 | 2.00k | pdfi_set_warning_file_line(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info, file_line); | 591 | 2.00k | if (ctx->args.pdfstoponwarning || gs_error == gs_error_Fatal || gs_error == gs_error_VMerror) { | 592 | 0 | if (gs_error < 0) | 593 | 0 | return gs_error; | 594 | 0 | else | 595 | 0 | return gs_error_unknownerror; | 596 | 0 | } | 597 | 2.00k | return 0; | 598 | 2.00k | } |
|
599 | | |
600 | | static inline void pdfi_log_info_file_line(pdf_context *ctx, const char *pdfi_function, const char *info) |
601 | 27.1k | { |
602 | 27.1k | if (!ctx->args.QUIET) |
603 | 0 | outprintf(ctx->memory, "%s", info); |
604 | 27.1k | } Unexecuted instantiation: zpdfops.c:pdfi_log_info_file_line Unexecuted instantiation: pdf_loop_detect.c:pdfi_log_info_file_line Unexecuted instantiation: ghostpdf.c:pdfi_log_info_file_line Unexecuted instantiation: pdf_dict.c:pdfi_log_info_file_line Unexecuted instantiation: pdf_array.c:pdfi_log_info_file_line Unexecuted instantiation: pdf_xref.c:pdfi_log_info_file_line pdf_int.c:pdfi_log_info_file_line Line | Count | Source | 601 | 14.8k | { | 602 | 14.8k | if (!ctx->args.QUIET) | 603 | 0 | outprintf(ctx->memory, "%s", info); | 604 | 14.8k | } |
Unexecuted instantiation: pdf_file.c:pdfi_log_info_file_line Unexecuted instantiation: pdf_path.c:pdfi_log_info_file_line pdf_colour.c:pdfi_log_info_file_line Line | Count | Source | 601 | 12.3k | { | 602 | 12.3k | if (!ctx->args.QUIET) | 603 | 0 | outprintf(ctx->memory, "%s", info); | 604 | 12.3k | } |
Unexecuted instantiation: pdf_pattern.c:pdfi_log_info_file_line Unexecuted instantiation: pdf_gstate.c:pdfi_log_info_file_line Unexecuted instantiation: pdf_stack.c:pdfi_log_info_file_line Unexecuted instantiation: pdf_image.c:pdfi_log_info_file_line Unexecuted instantiation: pdf_page.c:pdfi_log_info_file_line Unexecuted instantiation: pdf_annot.c:pdfi_log_info_file_line Unexecuted instantiation: pdf_mark.c:pdfi_log_info_file_line Unexecuted instantiation: pdf_font.c:pdfi_log_info_file_line Unexecuted instantiation: pdf_font0.c:pdfi_log_info_file_line Unexecuted instantiation: pdf_ciddec.c:pdfi_log_info_file_line Unexecuted instantiation: pdf_font1.c:pdfi_log_info_file_line Unexecuted instantiation: pdf_font1C.c:pdfi_log_info_file_line Unexecuted instantiation: pdf_fontps.c:pdfi_log_info_file_line Unexecuted instantiation: pdf_font3.c:pdfi_log_info_file_line Unexecuted instantiation: pdf_fontTT.c:pdfi_log_info_file_line Unexecuted instantiation: pdf_font11.c:pdfi_log_info_file_line Unexecuted instantiation: pdf_cmap.c:pdfi_log_info_file_line Unexecuted instantiation: pdf_fmap.c:pdfi_log_info_file_line Unexecuted instantiation: pdf_text.c:pdfi_log_info_file_line Unexecuted instantiation: pdf_shading.c:pdfi_log_info_file_line Unexecuted instantiation: pdf_func.c:pdfi_log_info_file_line Unexecuted instantiation: pdf_trans.c:pdfi_log_info_file_line Unexecuted instantiation: pdf_device.c:pdfi_log_info_file_line Unexecuted instantiation: pdf_misc.c:pdfi_log_info_file_line Unexecuted instantiation: pdf_optcontent.c:pdfi_log_info_file_line Unexecuted instantiation: pdf_check.c:pdfi_log_info_file_line Unexecuted instantiation: pdf_sec.c:pdfi_log_info_file_line Unexecuted instantiation: pdf_utf8.c:pdfi_log_info_file_line Unexecuted instantiation: pdf_deref.c:pdfi_log_info_file_line Unexecuted instantiation: pdf_repair.c:pdfi_log_info_file_line Unexecuted instantiation: pdf_obj.c:pdfi_log_info_file_line Unexecuted instantiation: pdf_doc.c:pdfi_log_info_file_line Unexecuted instantiation: pdf_fapi.c:pdfi_log_info_file_line |
605 | | |
606 | | #if defined(DEBUG) && defined(__FILE__) && defined(__LINE__) |
607 | | #define DEBUG_FILE_LINE 1 |
608 | | #define pdfi_log_info(ctx, pdfi_function, info) pdfi_log_info_file_line(ctx, pdfi_function, info) |
609 | | #define pdfi_set_warning_stop(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info) pdfi_set_warning_stop_file_line(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info, __FILE__"("GS_STRINGIZE(__LINE__)")") |
610 | | #define pdfi_set_warning(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info) pdfi_set_warning_file_line(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info, __FILE__"("GS_STRINGIZE(__LINE__)")") |
611 | | #define pdfi_set_error_stop(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info) pdfi_set_error_stop_file_line(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info, __FILE__"("GS_STRINGIZE(__LINE__)")") |
612 | | #define pdfi_set_error(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info) pdfi_set_error_file_line(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info, __FILE__"("GS_STRINGIZE(__LINE__)")") |
613 | | #else |
614 | | #define DEBUG_FILE_LINE 0 |
615 | 27.1k | #define pdfi_log_info(ctx, pdfi_function, info) pdfi_log_info_file_line(ctx, pdfi_function, info) |
616 | 303k | #define pdfi_set_warning_stop(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info) pdfi_set_warning_stop_file_line(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info, NULL) |
617 | 4.48M | #define pdfi_set_warning(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info) pdfi_set_warning_file_line(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info, NULL) |
618 | 25.3M | #define pdfi_set_error_stop(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info) pdfi_set_error_stop_file_line(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info, NULL) |
619 | 8.69M | #define pdfi_set_error(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info) pdfi_set_error_file_line(ctx, gs_error, gs_lib_function, pdfi_warning, pdfi_function_name, extra_info, NULL) |
620 | | #endif |
621 | | |
622 | | /* Variants of the above that work in a printf style. */ |
623 | | int pdfi_set_error_var(pdf_context *ctx, int gs_error, const char *gs_lib_function, pdf_error pdfi_error, const char *pdfi_function_name, const char *fmt, ...); |
624 | | int pdfi_set_warning_var(pdf_context *ctx, int gs_error, const char *gs_lib_function, pdf_warning pdfi_warning, const char *pdfi_function_name, const char *fmt, ...); |
625 | | |
626 | | #define PURGE_CACHE_PER_PAGE 0 |
627 | | |
628 | | #if PURGE_CACHE_PER_PAGE |
629 | | void pdfi_purge_obj_cache(pdf_context *ctx); |
630 | | #endif |
631 | | |
632 | | #endif |