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

Side by Side Diff: third_party/lpng_v163/pngrio.c

Issue 1591483003: XFA: Upgrade libpng to 1.6.20. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@xfa
Patch Set: rebase Created 4 years, 11 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/lpng_v163/pngread.c ('k') | third_party/lpng_v163/pngrtran.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 /* pngrio.c - functions for data input
2 *
3 * Last changed in libpng 1.6.0 [February 14, 2013]
4 * Copyright (c) 1998-2013 Glenn Randers-Pehrson
5 * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
6 * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
7 *
8 * This code is released under the libpng license.
9 * For conditions of distribution and use, see the disclaimer
10 * and license in png.h
11 *
12 * This file provides a location for all input. Users who need
13 * special handling are expected to write a function that has the same
14 * arguments as this and performs a similar function, but that possibly
15 * has a different input method. Note that you shouldn't change this
16 * function, but rather write a replacement function and then make
17 * libpng use it at run time with png_set_read_fn(...).
18 */
19
20 #include "pngpriv.h"
21
22 #ifdef PNG_READ_SUPPORTED
23
24 /* Read the data from whatever input you are using. The default routine
25 * reads from a file pointer. Note that this routine sometimes gets called
26 * with very small lengths, so you should implement some kind of simple
27 * buffering if you are using unbuffered reads. This should never be asked
28 * to read more then 64K on a 16 bit machine.
29 */
30 void /* PRIVATE */
31 png_read_data(png_structrp png_ptr, png_bytep data, png_size_t length)
32 {
33 png_debug1(4, "reading %d bytes", (int)length);
34
35 if (png_ptr->read_data_fn != NULL)
36 (*(png_ptr->read_data_fn))(png_ptr, data, length);
37
38 else
39 png_error(png_ptr, "Call to NULL read function");
40 }
41
42 #ifdef PNG_STDIO_SUPPORTED
43 /* This is the function that does the actual reading of data. If you are
44 * not reading from a standard C stream, you should create a replacement
45 * read_data function and use it at run time with png_set_read_fn(), rather
46 * than changing the library.
47 */
48 void PNGCBAPI
49 png_default_read_data(png_structp png_ptr, png_bytep data, png_size_t length)
50 {
51 png_size_t check;
52
53 if (png_ptr == NULL)
54 return;
55
56 /* fread() returns 0 on error, so it is OK to store this in a png_size_t
57 * instead of an int, which is what fread() actually returns.
58 */
59 check = fread(data, 1, length, png_voidcast(png_FILE_p, png_ptr->io_ptr));
60
61 if (check != length)
62 png_error(png_ptr, "Read Error");
63 }
64 #endif
65
66 /* This function allows the application to supply a new input function
67 * for libpng if standard C streams aren't being used.
68 *
69 * This function takes as its arguments:
70 *
71 * png_ptr - pointer to a png input data structure
72 *
73 * io_ptr - pointer to user supplied structure containing info about
74 * the input functions. May be NULL.
75 *
76 * read_data_fn - pointer to a new input function that takes as its
77 * arguments a pointer to a png_struct, a pointer to
78 * a location where input data can be stored, and a 32-bit
79 * unsigned int that is the number of bytes to be read.
80 * To exit and output any fatal error messages the new write
81 * function should call png_error(png_ptr, "Error msg").
82 * May be NULL, in which case libpng's default function will
83 * be used.
84 */
85 void PNGAPI
86 png_set_read_fn(png_structrp png_ptr, png_voidp io_ptr,
87 png_rw_ptr read_data_fn)
88 {
89 if (png_ptr == NULL)
90 return;
91
92 png_ptr->io_ptr = io_ptr;
93
94 #ifdef PNG_STDIO_SUPPORTED
95 if (read_data_fn != NULL)
96 png_ptr->read_data_fn = read_data_fn;
97
98 else
99 png_ptr->read_data_fn = png_default_read_data;
100 #else
101 png_ptr->read_data_fn = read_data_fn;
102 #endif
103
104 /* It is an error to write to a read device */
105 if (png_ptr->write_data_fn != NULL)
106 {
107 png_ptr->write_data_fn = NULL;
108 png_warning(png_ptr,
109 "Can't set both read_data_fn and write_data_fn in the"
110 " same structure");
111 }
112
113 #ifdef PNG_WRITE_FLUSH_SUPPORTED
114 png_ptr->output_flush_fn = NULL;
115 #endif
116 }
117 #endif /* PNG_READ_SUPPORTED */
OLDNEW
« no previous file with comments | « third_party/lpng_v163/pngread.c ('k') | third_party/lpng_v163/pngrtran.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698