[trunk] This fixes issues seen on PDF files

Fixes issue 156
This commit is contained in:
Mathieu Malaterre
2012-07-11 14:55:39 +00:00
parent 178236cc5f
commit 5ba8d36687
2 changed files with 17 additions and 6 deletions

View File

@@ -6326,7 +6326,7 @@ opj_bool j2k_update_rates( opj_j2k_v2_t *p_j2k,
static void j2k_read_eoc(opj_j2k_t *j2k) {
int i, tileno;
opj_bool success;
opj_bool success = false;
/* if packets should be decoded */
if (j2k->cp->limit_decoding != DECODE_ALL_BUT_PACKETS) {
@@ -6334,11 +6334,16 @@ static void j2k_read_eoc(opj_j2k_t *j2k) {
tcd_malloc_decode(tcd, j2k->image, j2k->cp);
for (i = 0; i < j2k->cp->tileno_size; i++) {
tcd_malloc_decode_tile(tcd, j2k->image, j2k->cp, i, j2k->cstr_info);
tileno = j2k->cp->tileno[i];
success = tcd_decode_tile(tcd, j2k->tile_data[tileno], j2k->tile_len[tileno], tileno, j2k->cstr_info);
opj_free(j2k->tile_data[tileno]);
j2k->tile_data[tileno] = NULL;
tcd_free_decode_tile(tcd, i);
if (j2k->cp->tileno[i] != -1)
{
tileno = j2k->cp->tileno[i];
success = tcd_decode_tile(tcd, j2k->tile_data[tileno], j2k->tile_len[tileno], tileno, j2k->cstr_info);
opj_free(j2k->tile_data[tileno]);
j2k->tile_data[tileno] = NULL;
tcd_free_decode_tile(tcd, i);
}
else
success = false;
if (success == OPJ_FALSE) {
j2k->state |= J2K_STATE_ERR;
break;