| Index: jdmainct.c
 | 
| diff --git a/jdmainct.c b/jdmainct.c
 | 
| index 6bb8c2b0e9252ef8cb6a2c2e59259260159393d4..ebb069b0f4162e8e55e405ca0715017fed2dd8b2 100644
 | 
| --- a/jdmainct.c
 | 
| +++ b/jdmainct.c
 | 
| @@ -4,8 +4,9 @@
 | 
|   * This file was part of the Independent JPEG Group's software:
 | 
|   * Copyright (C) 1994-1996, Thomas G. Lane.
 | 
|   * libjpeg-turbo Modifications:
 | 
| - * Copyright (C) 2010, D. R. Commander.
 | 
| - * For conditions of distribution and use, see the accompanying README file.
 | 
| + * Copyright (C) 2010, 2016, D. R. Commander.
 | 
| + * For conditions of distribution and use, see the accompanying README.ijg
 | 
| + * file.
 | 
|   *
 | 
|   * This file contains the main buffer controller for decompression.
 | 
|   * The main buffer lies between the JPEG decompressor proper and the
 | 
| @@ -15,6 +16,7 @@
 | 
|   * supplies the equivalent of the main buffer in that case.
 | 
|   */
 | 
|  
 | 
| +#include "jinclude.h"
 | 
|  #include "jdmainct.h"
 | 
|  
 | 
|  
 | 
| @@ -111,15 +113,15 @@
 | 
|  
 | 
|  /* Forward declarations */
 | 
|  METHODDEF(void) process_data_simple_main
 | 
| -	JPP((j_decompress_ptr cinfo, JSAMPARRAY output_buf,
 | 
| -	     JDIMENSION *out_row_ctr, JDIMENSION out_rows_avail));
 | 
| +        (j_decompress_ptr cinfo, JSAMPARRAY output_buf,
 | 
| +         JDIMENSION *out_row_ctr, JDIMENSION out_rows_avail);
 | 
|  METHODDEF(void) process_data_context_main
 | 
| -	JPP((j_decompress_ptr cinfo, JSAMPARRAY output_buf,
 | 
| -	     JDIMENSION *out_row_ctr, JDIMENSION out_rows_avail));
 | 
| +        (j_decompress_ptr cinfo, JSAMPARRAY output_buf,
 | 
| +         JDIMENSION *out_row_ctr, JDIMENSION out_rows_avail);
 | 
|  #ifdef QUANT_2PASS_SUPPORTED
 | 
|  METHODDEF(void) process_data_crank_post
 | 
| -	JPP((j_decompress_ptr cinfo, JSAMPARRAY output_buf,
 | 
| -	     JDIMENSION *out_row_ctr, JDIMENSION out_rows_avail));
 | 
| +        (j_decompress_ptr cinfo, JSAMPARRAY output_buf,
 | 
| +         JDIMENSION *out_row_ctr, JDIMENSION out_rows_avail);
 | 
|  #endif
 | 
|  
 | 
|  
 | 
| @@ -140,7 +142,7 @@ alloc_funny_pointers (j_decompress_ptr cinfo)
 | 
|     */
 | 
|    main_ptr->xbuffer[0] = (JSAMPIMAGE)
 | 
|      (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE,
 | 
| -				cinfo->num_components * 2 * SIZEOF(JSAMPARRAY));
 | 
| +                                cinfo->num_components * 2 * sizeof(JSAMPARRAY));
 | 
|    main_ptr->xbuffer[1] = main_ptr->xbuffer[0] + cinfo->num_components;
 | 
|  
 | 
|    for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components;
 | 
| @@ -152,8 +154,8 @@ alloc_funny_pointers (j_decompress_ptr cinfo)
 | 
|       */
 | 
|      xbuf = (JSAMPARRAY)
 | 
|        (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE,
 | 
| -				  2 * (rgroup * (M + 4)) * SIZEOF(JSAMPROW));
 | 
| -    xbuf += rgroup;		/* want one row group at negative offsets */
 | 
| +                                  2 * (rgroup * (M + 4)) * sizeof(JSAMPROW));
 | 
| +    xbuf += rgroup;             /* want one row group at negative offsets */
 | 
|      main_ptr->xbuffer[0][ci] = xbuf;
 | 
|      xbuf += rgroup * (M + 4);
 | 
|      main_ptr->xbuffer[1][ci] = xbuf;
 | 
| @@ -255,14 +257,14 @@ start_pass_main (j_decompress_ptr cinfo, J_BUF_MODE pass_mode)
 | 
|      if (cinfo->upsample->need_context_rows) {
 | 
|        main_ptr->pub.process_data = process_data_context_main;
 | 
|        make_funny_pointers(cinfo); /* Create the xbuffer[] lists */
 | 
| -      main_ptr->whichptr = 0;	/* Read first iMCU row into xbuffer[0] */
 | 
| +      main_ptr->whichptr = 0;   /* Read first iMCU row into xbuffer[0] */
 | 
|        main_ptr->context_state = CTX_PREPARE_FOR_IMCU;
 | 
|        main_ptr->iMCU_row_ctr = 0;
 | 
|      } else {
 | 
|        /* Simple case with no context needed */
 | 
|        main_ptr->pub.process_data = process_data_simple_main;
 | 
|      }
 | 
| -    main_ptr->buffer_full = FALSE;	/* Mark buffer empty */
 | 
| +    main_ptr->buffer_full = FALSE;      /* Mark buffer empty */
 | 
|      main_ptr->rowgroup_ctr = 0;
 | 
|      break;
 | 
|  #ifdef QUANT_2PASS_SUPPORTED
 | 
| @@ -285,8 +287,8 @@ start_pass_main (j_decompress_ptr cinfo, J_BUF_MODE pass_mode)
 | 
|  
 | 
|  METHODDEF(void)
 | 
|  process_data_simple_main (j_decompress_ptr cinfo,
 | 
| -			  JSAMPARRAY output_buf, JDIMENSION *out_row_ctr,
 | 
| -			  JDIMENSION out_rows_avail)
 | 
| +                          JSAMPARRAY output_buf, JDIMENSION *out_row_ctr,
 | 
| +                          JDIMENSION out_rows_avail)
 | 
|  {
 | 
|    my_main_ptr main_ptr = (my_main_ptr) cinfo->main;
 | 
|    JDIMENSION rowgroups_avail;
 | 
| @@ -294,8 +296,8 @@ process_data_simple_main (j_decompress_ptr cinfo,
 | 
|    /* Read input data if we haven't filled the main buffer yet */
 | 
|    if (! main_ptr->buffer_full) {
 | 
|      if (! (*cinfo->coef->decompress_data) (cinfo, main_ptr->buffer))
 | 
| -      return;			/* suspension forced, can do nothing more */
 | 
| -    main_ptr->buffer_full = TRUE;	/* OK, we have an iMCU row to work with */
 | 
| +      return;                   /* suspension forced, can do nothing more */
 | 
| +    main_ptr->buffer_full = TRUE;       /* OK, we have an iMCU row to work with */
 | 
|    }
 | 
|  
 | 
|    /* There are always min_DCT_scaled_size row groups in an iMCU row. */
 | 
| @@ -307,8 +309,8 @@ process_data_simple_main (j_decompress_ptr cinfo,
 | 
|  
 | 
|    /* Feed the postprocessor */
 | 
|    (*cinfo->post->post_process_data) (cinfo, main_ptr->buffer,
 | 
| -				     &main_ptr->rowgroup_ctr, rowgroups_avail,
 | 
| -				     output_buf, out_row_ctr, out_rows_avail);
 | 
| +                                     &main_ptr->rowgroup_ctr, rowgroups_avail,
 | 
| +                                     output_buf, out_row_ctr, out_rows_avail);
 | 
|  
 | 
|    /* Has postprocessor consumed all the data yet? If so, mark buffer empty */
 | 
|    if (main_ptr->rowgroup_ctr >= rowgroups_avail) {
 | 
| @@ -325,18 +327,18 @@ process_data_simple_main (j_decompress_ptr cinfo,
 | 
|  
 | 
|  METHODDEF(void)
 | 
|  process_data_context_main (j_decompress_ptr cinfo,
 | 
| -			   JSAMPARRAY output_buf, JDIMENSION *out_row_ctr,
 | 
| -			   JDIMENSION out_rows_avail)
 | 
| +                           JSAMPARRAY output_buf, JDIMENSION *out_row_ctr,
 | 
| +                           JDIMENSION out_rows_avail)
 | 
|  {
 | 
|    my_main_ptr main_ptr = (my_main_ptr) cinfo->main;
 | 
|  
 | 
|    /* Read input data if we haven't filled the main buffer yet */
 | 
|    if (! main_ptr->buffer_full) {
 | 
|      if (! (*cinfo->coef->decompress_data) (cinfo,
 | 
| -					   main_ptr->xbuffer[main_ptr->whichptr]))
 | 
| -      return;			/* suspension forced, can do nothing more */
 | 
| -    main_ptr->buffer_full = TRUE;	/* OK, we have an iMCU row to work with */
 | 
| -    main_ptr->iMCU_row_ctr++;	/* count rows received */
 | 
| +                                           main_ptr->xbuffer[main_ptr->whichptr]))
 | 
| +      return;                   /* suspension forced, can do nothing more */
 | 
| +    main_ptr->buffer_full = TRUE;       /* OK, we have an iMCU row to work with */
 | 
| +    main_ptr->iMCU_row_ctr++;   /* count rows received */
 | 
|    }
 | 
|  
 | 
|    /* Postprocessor typically will not swallow all the input data it is handed
 | 
| @@ -348,13 +350,13 @@ process_data_context_main (j_decompress_ptr cinfo,
 | 
|    case CTX_POSTPONED_ROW:
 | 
|      /* Call postprocessor using previously set pointers for postponed row */
 | 
|      (*cinfo->post->post_process_data) (cinfo, main_ptr->xbuffer[main_ptr->whichptr],
 | 
| -			&main_ptr->rowgroup_ctr, main_ptr->rowgroups_avail,
 | 
| -			output_buf, out_row_ctr, out_rows_avail);
 | 
| +                        &main_ptr->rowgroup_ctr, main_ptr->rowgroups_avail,
 | 
| +                        output_buf, out_row_ctr, out_rows_avail);
 | 
|      if (main_ptr->rowgroup_ctr < main_ptr->rowgroups_avail)
 | 
| -      return;			/* Need to suspend */
 | 
| +      return;                   /* Need to suspend */
 | 
|      main_ptr->context_state = CTX_PREPARE_FOR_IMCU;
 | 
|      if (*out_row_ctr >= out_rows_avail)
 | 
| -      return;			/* Postprocessor exactly filled output buf */
 | 
| +      return;                   /* Postprocessor exactly filled output buf */
 | 
|      /*FALLTHROUGH*/
 | 
|    case CTX_PREPARE_FOR_IMCU:
 | 
|      /* Prepare to process first M-1 row groups of this iMCU row */
 | 
| @@ -370,15 +372,15 @@ process_data_context_main (j_decompress_ptr cinfo,
 | 
|    case CTX_PROCESS_IMCU:
 | 
|      /* Call postprocessor using previously set pointers */
 | 
|      (*cinfo->post->post_process_data) (cinfo, main_ptr->xbuffer[main_ptr->whichptr],
 | 
| -			&main_ptr->rowgroup_ctr, main_ptr->rowgroups_avail,
 | 
| -			output_buf, out_row_ctr, out_rows_avail);
 | 
| +                        &main_ptr->rowgroup_ctr, main_ptr->rowgroups_avail,
 | 
| +                        output_buf, out_row_ctr, out_rows_avail);
 | 
|      if (main_ptr->rowgroup_ctr < main_ptr->rowgroups_avail)
 | 
| -      return;			/* Need to suspend */
 | 
| +      return;                   /* Need to suspend */
 | 
|      /* After the first iMCU, change wraparound pointers to normal state */
 | 
|      if (main_ptr->iMCU_row_ctr == 1)
 | 
|        set_wraparound_pointers(cinfo);
 | 
|      /* Prepare to load new iMCU row using other xbuffer list */
 | 
| -    main_ptr->whichptr ^= 1;	/* 0=>1 or 1=>0 */
 | 
| +    main_ptr->whichptr ^= 1;    /* 0=>1 or 1=>0 */
 | 
|      main_ptr->buffer_full = FALSE;
 | 
|      /* Still need to process last row group of this iMCU row, */
 | 
|      /* which is saved at index M+1 of the other xbuffer */
 | 
| @@ -399,12 +401,12 @@ process_data_context_main (j_decompress_ptr cinfo,
 | 
|  
 | 
|  METHODDEF(void)
 | 
|  process_data_crank_post (j_decompress_ptr cinfo,
 | 
| -			 JSAMPARRAY output_buf, JDIMENSION *out_row_ctr,
 | 
| -			 JDIMENSION out_rows_avail)
 | 
| +                         JSAMPARRAY output_buf, JDIMENSION *out_row_ctr,
 | 
| +                         JDIMENSION out_rows_avail)
 | 
|  {
 | 
|    (*cinfo->post->post_process_data) (cinfo, (JSAMPIMAGE) NULL,
 | 
| -				     (JDIMENSION *) NULL, (JDIMENSION) 0,
 | 
| -				     output_buf, out_row_ctr, out_rows_avail);
 | 
| +                                     (JDIMENSION *) NULL, (JDIMENSION) 0,
 | 
| +                                     output_buf, out_row_ctr, out_rows_avail);
 | 
|  }
 | 
|  
 | 
|  #endif /* QUANT_2PASS_SUPPORTED */
 | 
| @@ -423,11 +425,11 @@ jinit_d_main_controller (j_decompress_ptr cinfo, boolean need_full_buffer)
 | 
|  
 | 
|    main_ptr = (my_main_ptr)
 | 
|      (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE,
 | 
| -				SIZEOF(my_main_controller));
 | 
| +                                sizeof(my_main_controller));
 | 
|    cinfo->main = (struct jpeg_d_main_controller *) main_ptr;
 | 
|    main_ptr->pub.start_pass = start_pass_main;
 | 
|  
 | 
| -  if (need_full_buffer)		/* shouldn't happen */
 | 
| +  if (need_full_buffer)         /* shouldn't happen */
 | 
|      ERREXIT(cinfo, JERR_BAD_BUFFER_MODE);
 | 
|  
 | 
|    /* Allocate the workspace.
 | 
| @@ -447,8 +449,8 @@ jinit_d_main_controller (j_decompress_ptr cinfo, boolean need_full_buffer)
 | 
|      rgroup = (compptr->v_samp_factor * compptr->_DCT_scaled_size) /
 | 
|        cinfo->_min_DCT_scaled_size; /* height of a row group of component */
 | 
|      main_ptr->buffer[ci] = (*cinfo->mem->alloc_sarray)
 | 
| -			((j_common_ptr) cinfo, JPOOL_IMAGE,
 | 
| -			 compptr->width_in_blocks * compptr->_DCT_scaled_size,
 | 
| -			 (JDIMENSION) (rgroup * ngroups));
 | 
| +                        ((j_common_ptr) cinfo, JPOOL_IMAGE,
 | 
| +                         compptr->width_in_blocks * compptr->_DCT_scaled_size,
 | 
| +                         (JDIMENSION) (rgroup * ngroups));
 | 
|    }
 | 
|  }
 | 
| 
 |