diff options
author | Nicolas Pena <npm@chromium.org> | 2017-09-01 13:25:16 -0400 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2017-09-05 14:10:37 +0000 |
commit | 088ca03f25fe1f6d75c0ff3b71e0ad3d018a5e0c (patch) | |
tree | 27f55db27d9112910d9219efa58474a0c2bd9b52 /third_party/libopenjpeg20/0029-avoid-division-by-0.patch | |
parent | 740bcd892d22136873b2b123b94e51bf6e77b8f9 (diff) | |
download | pdfium-088ca03f25fe1f6d75c0ff3b71e0ad3d018a5e0c.tar.xz |
Upgrade OpenJPEG to 2.2.0
This CL upgrades OpenJPEG by copying the files from 2.2.0 and then applying
patches. Patch files that are no longer relevant are deleted. The relevant
ones are applied manually due to changes in formatting in OpenJPEG. Patch 34
is added to account for opj_malloc changes in PDFium.
Bug: chromium:718731
Change-Id: I3d316893eab5e235c9f71222a6818b8ae0c98383
Reviewed-on: https://pdfium-review.googlesource.com/12770
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
Diffstat (limited to 'third_party/libopenjpeg20/0029-avoid-division-by-0.patch')
-rw-r--r-- | third_party/libopenjpeg20/0029-avoid-division-by-0.patch | 119 |
1 files changed, 0 insertions, 119 deletions
diff --git a/third_party/libopenjpeg20/0029-avoid-division-by-0.patch b/third_party/libopenjpeg20/0029-avoid-division-by-0.patch deleted file mode 100644 index 4ea2b7ce3c..0000000000 --- a/third_party/libopenjpeg20/0029-avoid-division-by-0.patch +++ /dev/null @@ -1,119 +0,0 @@ -diff --git a/third_party/libopenjpeg20/pi.c b/third_party/libopenjpeg20/pi.c -index 9097e31a0..083674222 100644 ---- a/third_party/libopenjpeg20/pi.c -+++ b/third_party/libopenjpeg20/pi.c -@@ -355,12 +355,20 @@ if (!pi->tp_on){ - } - res = &comp->resolutions[pi->resno]; - levelno = comp->numresolutions - 1 - pi->resno; -- trx0 = opj_int_ceildiv(pi->tx0, (OPJ_INT32)(comp->dx << levelno)); -- try0 = opj_int_ceildiv(pi->ty0, (OPJ_INT32)(comp->dy << levelno)); -- trx1 = opj_int_ceildiv(pi->tx1, (OPJ_INT32)(comp->dx << levelno)); -- try1 = opj_int_ceildiv(pi->ty1, (OPJ_INT32)(comp->dy << levelno)); -+ OPJ_INT32 x_divisor = comp->dx << levelno; -+ OPJ_INT32 y_divisor = comp->dy << levelno; -+ if (x_divisor == 0 || y_divisor == 0) { -+ continue; -+ } -+ trx0 = opj_int_ceildiv(pi->tx0, x_divisor); -+ try0 = opj_int_ceildiv(pi->ty0, y_divisor); -+ trx1 = opj_int_ceildiv(pi->tx1, x_divisor); -+ try1 = opj_int_ceildiv(pi->ty1, y_divisor); - rpx = res->pdx + levelno; - rpy = res->pdy + levelno; -+ if (comp->dy << rpy == 0 || 1 << rpy == 0 || comp->dx << rpx == 0 || 1 << rpx == 0) { -+ continue; -+ } - if (!((pi->y % (OPJ_INT32)(comp->dy << rpy) == 0) || ((pi->y == pi->ty0) && ((try0 << levelno) % (1 << rpy))))){ - continue; - } -@@ -372,9 +380,9 @@ if (!pi->tp_on){ - - if ((trx0==trx1)||(try0==try1)) continue; - -- prci = opj_int_floordivpow2(opj_int_ceildiv(pi->x, (OPJ_INT32)(comp->dx << levelno)), (OPJ_INT32)res->pdx) -+ prci = opj_int_floordivpow2(opj_int_ceildiv(pi->x, x_divisor), (OPJ_INT32)res->pdx) - - opj_int_floordivpow2(trx0, (OPJ_INT32)res->pdx); -- prcj = opj_int_floordivpow2(opj_int_ceildiv(pi->y, (OPJ_INT32)(comp->dy << levelno)), (OPJ_INT32)res->pdy) -+ prcj = opj_int_floordivpow2(opj_int_ceildiv(pi->y, y_divisor), (OPJ_INT32)res->pdy) - - opj_int_floordivpow2(try0, (OPJ_INT32)res->pdy); - pi->precno = (OPJ_UINT32)(prci + prcj * (OPJ_INT32)res->pw); - if (pi->precno >= res->pw * res->ph) { -@@ -439,12 +447,20 @@ static OPJ_BOOL opj_pi_next_pcrl(opj_pi_iterator_t * pi) { - OPJ_INT32 prci, prcj; - res = &comp->resolutions[pi->resno]; - levelno = comp->numresolutions - 1 - pi->resno; -- trx0 = opj_int_ceildiv(pi->tx0, (OPJ_INT32)(comp->dx << levelno)); -- try0 = opj_int_ceildiv(pi->ty0, (OPJ_INT32)(comp->dy << levelno)); -- trx1 = opj_int_ceildiv(pi->tx1, (OPJ_INT32)(comp->dx << levelno)); -- try1 = opj_int_ceildiv(pi->ty1, (OPJ_INT32)(comp->dy << levelno)); -+ OPJ_INT32 x_divisor = comp->dx << levelno; -+ OPJ_INT32 y_divisor = comp->dy << levelno; -+ if (x_divisor == 0 || y_divisor == 0) { -+ continue; -+ } -+ trx0 = opj_int_ceildiv(pi->tx0, x_divisor); -+ try0 = opj_int_ceildiv(pi->ty0, y_divisor); -+ trx1 = opj_int_ceildiv(pi->tx1, x_divisor); -+ try1 = opj_int_ceildiv(pi->ty1, y_divisor); - rpx = res->pdx + levelno; - rpy = res->pdy + levelno; -+ if (comp->dy << rpy == 0 || 1 << rpy == 0 || comp->dx << rpx == 0 || 1 << rpx == 0) { -+ continue; -+ } - if (!((pi->y % (OPJ_INT32)(comp->dy << rpy) == 0) || ((pi->y == pi->ty0) && ((try0 << levelno) % (1 << rpy))))){ - continue; - } -@@ -456,9 +472,9 @@ static OPJ_BOOL opj_pi_next_pcrl(opj_pi_iterator_t * pi) { - - if ((trx0==trx1)||(try0==try1)) continue; - -- prci = opj_int_floordivpow2(opj_int_ceildiv(pi->x, (OPJ_INT32)(comp->dx << levelno)), (OPJ_INT32)res->pdx) -+ prci = opj_int_floordivpow2(opj_int_ceildiv(pi->x, x_divisor), (OPJ_INT32)res->pdx) - - opj_int_floordivpow2(trx0, (OPJ_INT32)res->pdx); -- prcj = opj_int_floordivpow2(opj_int_ceildiv(pi->y, (OPJ_INT32)(comp->dy << levelno)), (OPJ_INT32)res->pdy) -+ prcj = opj_int_floordivpow2(opj_int_ceildiv(pi->y, y_divisor), (OPJ_INT32)res->pdy) - - opj_int_floordivpow2(try0, (OPJ_INT32)res->pdy); - pi->precno = (OPJ_UINT32)(prci + prcj * (OPJ_INT32)res->pw); - if (pi->precno >= res->pw * res->ph) { -@@ -521,26 +537,33 @@ static OPJ_BOOL opj_pi_next_cprl(opj_pi_iterator_t * pi) { - OPJ_INT32 prci, prcj; - res = &comp->resolutions[pi->resno]; - levelno = comp->numresolutions - 1 - pi->resno; -- trx0 = opj_int_ceildiv(pi->tx0, (OPJ_INT32)(comp->dx << levelno)); -- try0 = opj_int_ceildiv(pi->ty0, (OPJ_INT32)(comp->dy << levelno)); -- trx1 = opj_int_ceildiv(pi->tx1, (OPJ_INT32)(comp->dx << levelno)); -- try1 = opj_int_ceildiv(pi->ty1, (OPJ_INT32)(comp->dy << levelno)); -+ OPJ_INT32 x_divisor = comp->dx << levelno; -+ OPJ_INT32 y_divisor = comp->dy << levelno; -+ if (x_divisor == 0 || y_divisor == 0) { -+ continue; -+ } -+ trx0 = opj_int_ceildiv(pi->tx0, x_divisor); -+ try0 = opj_int_ceildiv(pi->ty0, y_divisor); -+ trx1 = opj_int_ceildiv(pi->tx1, x_divisor); -+ try1 = opj_int_ceildiv(pi->ty1, y_divisor); - rpx = res->pdx + levelno; - rpy = res->pdy + levelno; -+ if (comp->dy << rpy == 0 || 1 << rpy == 0 || comp->dx << rpx == 0 || 1 << rpx == 0) { -+ continue; -+ } - if (!((pi->y % (OPJ_INT32)(comp->dy << rpy) == 0) || ((pi->y == pi->ty0) && ((try0 << levelno) % (1 << rpy))))){ - continue; - } - if (!((pi->x % (OPJ_INT32)(comp->dx << rpx) == 0) || ((pi->x == pi->tx0) && ((trx0 << levelno) % (1 << rpx))))){ - continue; - } -- - if ((res->pw==0)||(res->ph==0)) continue; - - if ((trx0==trx1)||(try0==try1)) continue; - -- prci = opj_int_floordivpow2(opj_int_ceildiv(pi->x, (OPJ_INT32)(comp->dx << levelno)), (OPJ_INT32)res->pdx) -+ prci = opj_int_floordivpow2(opj_int_ceildiv(pi->x, x_divisor), (OPJ_INT32)res->pdx) - - opj_int_floordivpow2(trx0, (OPJ_INT32)res->pdx); -- prcj = opj_int_floordivpow2(opj_int_ceildiv(pi->y, (OPJ_INT32)(comp->dy << levelno)), (OPJ_INT32)res->pdy) -+ prcj = opj_int_floordivpow2(opj_int_ceildiv(pi->y, y_divisor), (OPJ_INT32)res->pdy) - - opj_int_floordivpow2(try0, (OPJ_INT32)res->pdy); - pi->precno = (OPJ_UINT32)(prci + prcj * (OPJ_INT32)res->pw); - if (pi->precno >= res->pw * res->ph) { |