Ticket #3116: jpeg-io_error-exception.patch

File jpeg-io_error-exception.patch, 751 bytes (added by Giel van Schijndel <me@…>, 13 years ago)

Turn JPEG errors into exceptions

  • boost/gil/extension/io/jpeg_io_private.hpp

    old new  
    8686
    8787    void init() {
    8888        _cinfo.err=jpeg_std_error(&_jerr);
     89        _cinfo.err->error_exit = error_exit;
    8990        jpeg_create_decompress(&_cinfo);
    9091        jpeg_stdio_src(&_cinfo,_fp.get());
    9192        jpeg_read_header(&_cinfo,TRUE);
    9293    }
     94
     95    static void error_exit(j_common_ptr cinfo)
     96    {
     97        char buffer[JMSG_LENGTH_MAX];
     98        /* Create the message */
     99        (*cinfo->err->format_message) (cinfo, buffer);
     100
     101        io_error(buffer);
     102    }
    93103public:
    94104    jpeg_reader(FILE* file)           : file_mgr(file)           { init(); }
    95105    jpeg_reader(const char* filename) : file_mgr(filename, "rb") { init(); }