Ignore:
Timestamp:
Sep 15, 2015, 12:22:09 PM (10 years ago)
Author:
Silvan Scherrer
Message:

libpng: update vendor to 1.6.18, add removed files from 1.6.16 commit again

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified libpng/vendor/current/pngpread.c

    r1059 r1165  
    22/* pngpread.c - read a png file in push mode
    33 *
    4  * Last changed in libpng 1.6.15 [November 20, 2014]
    5  * Copyright (c) 1998-2014 Glenn Randers-Pehrson
     4 * Last changed in libpng 1.6.18 [July 23, 2015]
     5 * Copyright (c) 1998-2015 Glenn Randers-Pehrson
    66 * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
    77 * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
     
    2020#define PNG_READ_CHUNK_MODE 1
    2121#define PNG_READ_IDAT_MODE  2
    22 #define PNG_SKIP_MODE       3
    2322#define PNG_READ_tEXt_MODE  4
    2423#define PNG_READ_zTXt_MODE  5
     
    7978png_process_data_skip(png_structrp png_ptr)
    8079{
    81    png_uint_32 remaining = 0;
    82 
    83    if (png_ptr != NULL && png_ptr->process_mode == PNG_SKIP_MODE &&
    84       png_ptr->skip_length > 0)
    85    {
    86       /* At the end of png_process_data the buffer size must be 0 (see the loop
    87        * above) so we can detect a broken call here:
    88        */
    89       if (png_ptr->buffer_size != 0)
    90          png_error(png_ptr,
    91             "png_process_data_skip called inside png_process_data");
    92 
    93       /* If is impossible for there to be a saved buffer at this point -
    94        * otherwise we could not be in SKIP mode.  This will also happen if
    95        * png_process_skip is called inside png_process_data (but only very
    96        * rarely.)
    97        */
    98       if (png_ptr->save_buffer_size != 0)
    99          png_error(png_ptr, "png_process_data_skip called with saved data");
    100 
    101       remaining = png_ptr->skip_length;
    102       png_ptr->skip_length = 0;
    103       png_ptr->process_mode = PNG_READ_CHUNK_MODE;
    104    }
    105 
    106    return remaining;
     80  /* TODO: Deprecate and remove this API.
     81   * Somewhere the implementation of this seems to have been lost,
     82   * or abandoned.  It was only to support some internal back-door access
     83   * to png_struct) in libpng-1.4.x.
     84   */
     85   png_app_warning(png_ptr,
     86"png_process_data_skip is not implemented in any current version of libpng");
     87   return 0;
    10788}
    10889
     
    133114      {
    134115         png_push_read_IDAT(png_ptr);
    135          break;
    136       }
    137 
    138       case PNG_SKIP_MODE:
    139       {
    140          png_push_crc_finish(png_ptr);
    141116         break;
    142117      }
     
    160135{
    161136   png_size_t num_checked = png_ptr->sig_bytes, /* SAFE, does not exceed 8 */
    162              num_to_check = 8 - num_checked;
     137       num_to_check = 8 - num_checked;
    163138
    164139   if (png_ptr->buffer_size < num_to_check)
     
    440415}
    441416
    442 void /* PRIVATE */
    443 png_push_crc_skip(png_structrp png_ptr, png_uint_32 skip)
    444 {
    445    png_ptr->process_mode = PNG_SKIP_MODE;
    446    png_ptr->skip_length = skip;
    447 }
    448 
    449 void /* PRIVATE */
    450 png_push_crc_finish(png_structrp png_ptr)
    451 {
    452    if (png_ptr->skip_length != 0 && png_ptr->save_buffer_size != 0)
    453    {
    454       png_size_t save_size = png_ptr->save_buffer_size;
    455       png_uint_32 skip_length = png_ptr->skip_length;
    456 
    457       /* We want the smaller of 'skip_length' and 'save_buffer_size', but
    458        * they are of different types and we don't know which variable has the
    459        * fewest bits.  Carefully select the smaller and cast it to the type of
    460        * the larger - this cannot overflow.  Do not cast in the following test
    461        * - it will break on either 16 or 64 bit platforms.
    462        */
    463       if (skip_length < save_size)
    464          save_size = (png_size_t)skip_length;
    465 
    466       else
    467          skip_length = (png_uint_32)save_size;
    468 
    469       png_calculate_crc(png_ptr, png_ptr->save_buffer_ptr, save_size);
    470 
    471       png_ptr->skip_length -= skip_length;
    472       png_ptr->buffer_size -= save_size;
    473       png_ptr->save_buffer_size -= save_size;
    474       png_ptr->save_buffer_ptr += save_size;
    475    }
    476    if (png_ptr->skip_length != 0 && png_ptr->current_buffer_size != 0)
    477    {
    478       png_size_t save_size = png_ptr->current_buffer_size;
    479       png_uint_32 skip_length = png_ptr->skip_length;
    480 
    481       /* We want the smaller of 'skip_length' and 'current_buffer_size', here,
    482        * the same problem exists as above and the same solution.
    483        */
    484       if (skip_length < save_size)
    485          save_size = (png_size_t)skip_length;
    486 
    487       else
    488          skip_length = (png_uint_32)save_size;
    489 
    490       png_calculate_crc(png_ptr, png_ptr->current_buffer_ptr, save_size);
    491 
    492       png_ptr->skip_length -= skip_length;
    493       png_ptr->buffer_size -= save_size;
    494       png_ptr->current_buffer_size -= save_size;
    495       png_ptr->current_buffer_ptr += save_size;
    496    }
    497    if (png_ptr->skip_length == 0)
    498    {
    499       PNG_PUSH_SAVE_BUFFER_IF_LT(4)
    500       png_crc_finish(png_ptr, 0);
    501       png_ptr->process_mode = PNG_READ_CHUNK_MODE;
    502    }
    503 }
    504 
    505417void PNGCBAPI
    506418png_push_fill_buffer(png_structp png_ptr, png_bytep buffer, png_size_t length)
     
    585497      {
    586498         png_free(png_ptr, old_buffer);
    587          old_buffer = NULL;
    588499         png_error(png_ptr, "Insufficient memory for save_buffer");
    589500      }
     
    591502      memcpy(png_ptr->save_buffer, old_buffer, png_ptr->save_buffer_size);
    592503      png_free(png_ptr, old_buffer);
    593       old_buffer = NULL;
    594504      png_ptr->save_buffer_max = new_max;
    595505   }
     
    697607      png_ptr->current_buffer_ptr += save_size;
    698608   }
     609
    699610   if (png_ptr->idat_size == 0)
    700611   {
     
    727638    */
    728639   while (png_ptr->zstream.avail_in > 0 &&
    729       !(png_ptr->flags & PNG_FLAG_ZSTREAM_ENDED))
     640      (png_ptr->flags & PNG_FLAG_ZSTREAM_ENDED) == 0)
    730641   {
    731642      int ret;
     
    1037948   }
    1038949   else
     950#endif
    1039951   {
    1040952      png_push_have_row(png_ptr, png_ptr->row_buf + 1);
     
    1046958png_read_push_finish_row(png_structrp png_ptr)
    1047959{
     960#ifdef PNG_READ_INTERLACING_SUPPORTED
    1048961   /* Arrays to facilitate easy interlacing - use pass (0 - 6) as index */
    1049962
     
    1070983      return;
    1071984
     985#ifdef PNG_READ_INTERLACING_SUPPORTED
    1072986   if (png_ptr->interlaced != 0)
    1073987   {
     
    11041018      } while (png_ptr->iwidth == 0 || png_ptr->num_rows == 0);
    11051019   }
     1020#endif /* READ_INTERLACING */
    11061021}
    11071022
     
    11281043}
    11291044
     1045#ifdef PNG_READ_INTERLACING_SUPPORTED
    11301046void PNGAPI
    11311047png_progressive_combine_row(png_const_structrp png_ptr, png_bytep old_row,
     
    11421058      png_combine_row(png_ptr, old_row, 1/*blocky display*/);
    11431059}
     1060#endif /* READ_INTERLACING */
    11441061
    11451062void PNGAPI
Note: See TracChangeset for help on using the changeset viewer.