fixed segfault with 123.j2c and bug.j2c images (thanks to Tim Mattox for his contribution to this patch)

This commit is contained in:
Mickael Savinaud 2011-08-10 09:00:34 +00:00
parent 9e419fdaf7
commit 6fb9794200
2 changed files with 18 additions and 12 deletions

View File

@ -9,6 +9,7 @@ August 10, 2011
! [mickael] removed unused parameters warnings with the solution proposed by myself and Bob Friesenhahn.
! [mickael] add copyright header into new test functions.
* [mickael] fixed glibc error with broken2 and broken4 images.
* [mickael] fixed segfault with 123.j2c and bug.j2c images (thanks to Tim Mattox for his improvement).
August 9, 2011
- [antonin] removed xcode project files (cmake and autotools are now the only supported build methods)

View File

@ -1418,18 +1418,23 @@ opj_bool tcd_decode_tile(opj_tcd_t *tcd, unsigned char *src, int len, int tileno
if (tcd->tcp->mct) {
int n = (tile->comps[0].x1 - tile->comps[0].x0) * (tile->comps[0].y1 - tile->comps[0].y0);
if (tcd->tcp->tccps[0].qmfbid == 1) {
mct_decode(
tile->comps[0].data,
tile->comps[1].data,
tile->comps[2].data,
n);
} else {
mct_decode_real(
(float*)tile->comps[0].data,
(float*)tile->comps[1].data,
(float*)tile->comps[2].data,
n);
if (tile->numcomps >= 3 ){
if (tcd->tcp->tccps[0].qmfbid == 1) {
mct_decode(
tile->comps[0].data,
tile->comps[1].data,
tile->comps[2].data,
n);
} else {
mct_decode_real(
(float*)tile->comps[0].data,
(float*)tile->comps[1].data,
(float*)tile->comps[2].data,
n);
}
} else{
opj_event_msg(tcd->cinfo, EVT_WARNING,"Number of components (%d) is inconsistent with a MCT. Skip the MCT step.\n",tile->numcomps);
}
}