OLD | NEW |
| 1 |
1 /* pngrio.c - functions for data input | 2 /* pngrio.c - functions for data input |
2 * | 3 * |
3 * Last changed in libpng 1.6.0 [February 14, 2013] | 4 * Last changed in libpng 1.6.17 [March 26, 2015] |
4 * Copyright (c) 1998-2013 Glenn Randers-Pehrson | 5 * Copyright (c) 1998-2015 Glenn Randers-Pehrson |
5 * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) | 6 * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) |
6 * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) | 7 * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) |
7 * | 8 * |
8 * This code is released under the libpng license. | 9 * This code is released under the libpng license. |
9 * For conditions of distribution and use, see the disclaimer | 10 * For conditions of distribution and use, see the disclaimer |
10 * and license in png.h | 11 * and license in png.h |
11 * | 12 * |
12 * This file provides a location for all input. Users who need | 13 * 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 * 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 * 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 * has a different input method. Note that you shouldn't change this |
16 * function, but rather write a replacement function and then make | 17 * function, but rather write a replacement function and then make |
17 * libpng use it at run time with png_set_read_fn(...). | 18 * libpng use it at run time with png_set_read_fn(...). |
18 */ | 19 */ |
19 | 20 |
20 #include "pngpriv.h" | 21 #include "pngpriv.h" |
21 | 22 |
22 #ifdef PNG_READ_SUPPORTED | 23 #ifdef PNG_READ_SUPPORTED |
23 | 24 |
24 /* Read the data from whatever input you are using. The default routine | 25 /* 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 * 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 * 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 * buffering if you are using unbuffered reads. This should never be asked |
28 * to read more then 64K on a 16 bit machine. | 29 * to read more than 64K on a 16-bit machine. |
29 */ | 30 */ |
30 void /* PRIVATE */ | 31 void /* PRIVATE */ |
31 png_read_data(png_structrp png_ptr, png_bytep data, png_size_t length) | 32 png_read_data(png_structrp png_ptr, png_bytep data, png_size_t length) |
32 { | 33 { |
33 png_debug1(4, "reading %d bytes", (int)length); | 34 png_debug1(4, "reading %d bytes", (int)length); |
34 | 35 |
35 if (png_ptr->read_data_fn != NULL) | 36 if (png_ptr->read_data_fn != NULL) |
36 (*(png_ptr->read_data_fn))(png_ptr, data, length); | 37 (*(png_ptr->read_data_fn))(png_ptr, data, length); |
37 | 38 |
38 else | 39 else |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
94 #ifdef PNG_STDIO_SUPPORTED | 95 #ifdef PNG_STDIO_SUPPORTED |
95 if (read_data_fn != NULL) | 96 if (read_data_fn != NULL) |
96 png_ptr->read_data_fn = read_data_fn; | 97 png_ptr->read_data_fn = read_data_fn; |
97 | 98 |
98 else | 99 else |
99 png_ptr->read_data_fn = png_default_read_data; | 100 png_ptr->read_data_fn = png_default_read_data; |
100 #else | 101 #else |
101 png_ptr->read_data_fn = read_data_fn; | 102 png_ptr->read_data_fn = read_data_fn; |
102 #endif | 103 #endif |
103 | 104 |
| 105 #ifdef PNG_WRITE_SUPPORTED |
104 /* It is an error to write to a read device */ | 106 /* It is an error to write to a read device */ |
105 if (png_ptr->write_data_fn != NULL) | 107 if (png_ptr->write_data_fn != NULL) |
106 { | 108 { |
107 png_ptr->write_data_fn = NULL; | 109 png_ptr->write_data_fn = NULL; |
108 png_warning(png_ptr, | 110 png_warning(png_ptr, |
109 "Can't set both read_data_fn and write_data_fn in the" | 111 "Can't set both read_data_fn and write_data_fn in the" |
110 " same structure"); | 112 " same structure"); |
111 } | 113 } |
| 114 #endif |
112 | 115 |
113 #ifdef PNG_WRITE_FLUSH_SUPPORTED | 116 #ifdef PNG_WRITE_FLUSH_SUPPORTED |
114 png_ptr->output_flush_fn = NULL; | 117 png_ptr->output_flush_fn = NULL; |
115 #endif | 118 #endif |
116 } | 119 } |
117 #endif /* PNG_READ_SUPPORTED */ | 120 #endif /* READ */ |
OLD | NEW |