diff options
Diffstat (limited to 'src/Fl_PNG_Image.cxx')
| -rw-r--r-- | src/Fl_PNG_Image.cxx | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/src/Fl_PNG_Image.cxx b/src/Fl_PNG_Image.cxx index 9f8e368b3..3f5164fee 100644 --- a/src/Fl_PNG_Image.cxx +++ b/src/Fl_PNG_Image.cxx @@ -51,20 +51,22 @@ typedef struct { const unsigned char *last; } fl_png_memory; -static void png_read_data_from_mem( png_structp png_ptr, //pointer to our data - png_bytep data, // where to copy the image data for libpng computing - png_size_t length) // length of data to copy -{ - fl_png_memory *png_mem_data = (fl_png_memory*)png_get_io_ptr(png_ptr); // get the pointer to our struct - if (png_mem_data->current + length > png_mem_data->last) { - png_error(png_mem_data->pp, "Invalid attempt to read row data"); - return; +extern "C" { + static void png_read_data_from_mem( png_structp png_ptr, //pointer to our data + png_bytep data, // where to copy the image data for libpng computing + png_size_t length) // length of data to copy + { + fl_png_memory *png_mem_data = (fl_png_memory*)png_get_io_ptr(png_ptr); // get the pointer to our struct + if (png_mem_data->current + length > png_mem_data->last) { + png_error(png_mem_data->pp, "Invalid attempt to read row data"); + return; + } + /* copy data from image buffer */ + memcpy (data, png_mem_data->current, length); + /* advance in the memory data */ + png_mem_data->current += length; } - /* copy data from image buffer */ - memcpy (data, png_mem_data->current, length); - /* advance in the memory data */ - png_mem_data->current += length; -} +} // extern "C" #endif // HAVE_LIBPNG && HAVE_LIBZ |
