Ticket #73: leocad-0.75.2-libpng15.patch

File leocad-0.75.2-libpng15.patch, 3.4 KB (added by egore911, 4 years ago)
  • common/im_png.cpp

    old new  
    2121
    2222  // Read() returns 0 on error, so it is OK to store this in a png_size_t
    2323  // instead of an int, which is what Read() actually returns.
     24#if defined(PNG_LIBPNG_VER_MAJOR) && defined(PNG_LIBPNG_VER_MINOR) && (PNG_LIBPNG_VER_MAJOR > 1 || (PNG_LIBPNG_VER_MAJOR == 1 && PNG_LIBPNG_VER_MINOR >= 5))
     25  check = (png_size_t)((File*)png_get_io_ptr(png_ptr))->Read (data, length);
     26#else
    2427  check = (png_size_t)((File*)png_ptr->io_ptr)->Read (data, length);
     28#endif
    2529
    2630  if (check != length)
    2731    png_error(png_ptr, "Read Error");
     
    6165    return false;       // out of memory
    6266  }
    6367
     68#if defined(PNG_LIBPNG_VER_MAJOR) && defined(PNG_LIBPNG_VER_MINOR) && (PNG_LIBPNG_VER_MAJOR > 1 || (PNG_LIBPNG_VER_MAJOR == 1 && PNG_LIBPNG_VER_MINOR >= 5))
     69  if (setjmp(png_jmpbuf(png_ptr)))
     70#else
    6471  if (setjmp(png_ptr->jmpbuf))
     72#endif
    6573  {
    6674    png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
    6775    return false;
     
    7583  png_get_IHDR(png_ptr, info_ptr, &width, &height, &bit_depth, &color_type,
    7684               NULL, NULL, NULL);
    7785
     86#if defined(PNG_LIBPNG_VER_MAJOR) && defined(PNG_LIBPNG_VER_MINOR) && (PNG_LIBPNG_VER_MAJOR > 1 || (PNG_LIBPNG_VER_MAJOR == 1 && PNG_LIBPNG_VER_MINOR >= 5))
     87  if (setjmp(png_jmpbuf(png_ptr)))
     88#else
    7889  if (setjmp(png_ptr->jmpbuf))
     90#endif
    7991  {
    8092    png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
    8193    return false;
     
    8597  {
    8698    png_get_bKGD(png_ptr, info_ptr, &pBackground);
    8799
     100#if defined(PNG_LIBPNG_VER_MAJOR) && defined(PNG_LIBPNG_VER_MINOR) && (PNG_LIBPNG_VER_MAJOR > 1 || (PNG_LIBPNG_VER_MAJOR == 1 && PNG_LIBPNG_VER_MINOR >= 5))
     101    if (setjmp (png_jmpbuf(png_ptr)))
     102#else
    88103    if (setjmp (png_ptr->jmpbuf))
     104#endif
    89105    {
    90106      png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
    91107      return false;
     
    117133  }
    118134  else
    119135  {
     136#if defined(PNG_LIBPNG_VER_MAJOR) && defined(PNG_LIBPNG_VER_MINOR) && (PNG_LIBPNG_VER_MAJOR > 1 || (PNG_LIBPNG_VER_MAJOR == 1 && PNG_LIBPNG_VER_MINOR >= 5))
     137    if (setjmp (png_jmpbuf(png_ptr)))
     138#else
    120139    if (setjmp (png_ptr->jmpbuf))
     140#endif
    121141    {
    122142      png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
    123143      return false;
     
    263283{
    264284  png_uint_32 check;
    265285
     286#if defined(PNG_LIBPNG_VER_MAJOR) && defined(PNG_LIBPNG_VER_MINOR) && (PNG_LIBPNG_VER_MAJOR > 1 || (PNG_LIBPNG_VER_MAJOR == 1 && PNG_LIBPNG_VER_MINOR >= 5))
     287  check = ((File*)png_get_io_ptr(png_ptr))->Write (data, length);
     288#else
    266289  check = ((File*)png_ptr->io_ptr)->Write (data, length);
     290#endif
    267291  if (check != length)
    268292  {
    269293    png_error(png_ptr, "Write Error");
     
    272296
    273297static void user_flush_fn (png_structp png_ptr)
    274298{
     299#if defined(PNG_LIBPNG_VER_MAJOR) && defined(PNG_LIBPNG_VER_MINOR) && (PNG_LIBPNG_VER_MAJOR > 1 || (PNG_LIBPNG_VER_MAJOR == 1 && PNG_LIBPNG_VER_MINOR >= 5))
     300  ((File*)png_get_io_ptr(png_ptr))->Flush ();
     301#else
    275302  ((File*)png_ptr->io_ptr)->Flush ();
     303#endif
    276304}
    277305
    278306bool Image::SavePNG (File& file, bool transparent, bool interlaced, unsigned char* background) const
     
    295323    return false;
    296324  }
    297325
     326#if defined(PNG_LIBPNG_VER_MAJOR) && defined(PNG_LIBPNG_VER_MINOR) && (PNG_LIBPNG_VER_MAJOR > 1 || (PNG_LIBPNG_VER_MAJOR == 1 && PNG_LIBPNG_VER_MINOR >= 5))
     327  if (setjmp(png_jmpbuf(png_ptr)))
     328#else
    298329  if (setjmp(png_ptr->jmpbuf))
     330#endif
    299331  {
    300332    png_destroy_write_struct(&png_ptr,  (png_infopp)NULL);
    301333    return false;