~noskcaj/ubuntu/wily/libjpeg6b/merge

« back to all changes in this revision

Viewing changes to jdmarker.c

  • Committer: Package Import Robot
  • Author(s): Logan Rosen
  • Date: 2013-12-10 18:09:16 UTC
  • mfrom: (4.1.7 sid)
  • Revision ID: package-import@ubuntu.com-20131210180916-osp2j9p1m0mdtj7y
Tags: 6b1-4ubuntu1
* Merge from Debian unstable (LP: #1011177). Remaining changes:
  - debian/rules: Remove "-Bsymbolic-functions" from LDFLAGS.

Show diffs side-by-side

added added

removed removed

Lines of Context:
238
238
/* Process a SOFn marker */
239
239
{
240
240
  INT32 length;
241
 
  int c, ci;
 
241
  int c, ci, i;
242
242
  jpeg_component_info * compptr;
243
243
  INPUT_VARS(cinfo);
244
244
 
275
275
    cinfo->comp_info = (jpeg_component_info *) (*cinfo->mem->alloc_small)
276
276
                        ((j_common_ptr) cinfo, JPOOL_IMAGE,
277
277
                         cinfo->num_components * SIZEOF(jpeg_component_info));
278
 
  
279
 
  for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components;
280
 
       ci++, compptr++) {
 
278
 
 
279
  for (ci = 0; ci < cinfo->num_components; ci++) {
 
280
    INPUT_BYTE(cinfo, c, return FALSE);
 
281
    /* Check to see whether component id has already been seen   */
 
282
    /* (in violation of the spec, but unfortunately seen in some */
 
283
    /* files).  If so, create "fake" component id equal to the   */
 
284
    /* max id seen so far + 1. */
 
285
    for (i = 0, compptr = cinfo->comp_info; i < ci; i++, compptr++) {
 
286
      if (c == compptr->component_id) {
 
287
        compptr = cinfo->comp_info;
 
288
        c = compptr->component_id;
 
289
        compptr++;
 
290
        for (i = 1; i < ci; i++, compptr++) {
 
291
          if (compptr->component_id > c) c = compptr->component_id;
 
292
        }
 
293
        c++;
 
294
        break;
 
295
      }
 
296
    }
 
297
    compptr->component_id = c;
281
298
    compptr->component_index = ci;
282
 
    INPUT_BYTE(cinfo, compptr->component_id, return FALSE);
283
299
    INPUT_BYTE(cinfo, c, return FALSE);
284
300
    compptr->h_samp_factor = (c >> 4) & 15;
285
301
    compptr->v_samp_factor = (c     ) & 15;
302
318
/* Process a SOS marker */
303
319
{
304
320
  INT32 length;
305
 
  int i, ci, n, c, cc;
 
321
  int c, ci, i, n;
306
322
  jpeg_component_info * compptr;
307
323
  INPUT_VARS(cinfo);
308
324
 
323
339
  /* Collect the component-spec parameters */
324
340
 
325
341
  for (i = 0; i < n; i++) {
326
 
    INPUT_BYTE(cinfo, cc, return FALSE);
327
342
    INPUT_BYTE(cinfo, c, return FALSE);
328
 
    
 
343
 
 
344
    /* Detect the case where component id's are not unique, and, if so, */
 
345
    /* create a fake component id using the same logic as in get_sof.   */
 
346
    for (ci = 0; ci < i; ci++) {
 
347
      if (c == cinfo->cur_comp_info[ci]->component_id) {
 
348
        c = cinfo->cur_comp_info[0]->component_id;
 
349
        for (ci = 1; ci < i; ci++) {
 
350
          compptr = cinfo->cur_comp_info[ci];
 
351
          if (compptr->component_id > c) c = compptr->component_id;
 
352
        }
 
353
        c++;
 
354
        break;
 
355
      }
 
356
    }
 
357
 
329
358
    for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components;
330
359
         ci++, compptr++) {
331
 
      if (cc == compptr->component_id)
 
360
      if (c == compptr->component_id)
332
361
        goto id_found;
333
362
    }
334
363
 
335
 
    ERREXIT1(cinfo, JERR_BAD_COMPONENT_ID, cc);
 
364
    ERREXIT1(cinfo, JERR_BAD_COMPONENT_ID, c);
336
365
 
337
366
  id_found:
338
367
 
339
368
    cinfo->cur_comp_info[i] = compptr;
 
369
    INPUT_BYTE(cinfo, c, return FALSE);
340
370
    compptr->dc_tbl_no = (c >> 4) & 15;
341
371
    compptr->ac_tbl_no = (c     ) & 15;
342
 
    
343
 
    TRACEMS3(cinfo, 1, JTRC_SOS_COMPONENT, cc,
 
372
 
 
373
    TRACEMS3(cinfo, 1, JTRC_SOS_COMPONENT, compptr->component_id,
344
374
             compptr->dc_tbl_no, compptr->ac_tbl_no);
345
375
  }
346
376
 
456
486
    if (count > 256 || ((INT32) count) > length)
457
487
      ERREXIT(cinfo, JERR_BAD_HUFF_TABLE);
458
488
 
 
489
    MEMZERO(huffval, SIZEOF(huffval)); /* pre-zero array for later copy */
 
490
 
459
491
    for (i = 0; i < count; i++)
460
492
      INPUT_BYTE(cinfo, huffval[i], return FALSE);
461
493