Chromium Code Reviews| Index: core/fxcodec/jbig2/JBig2_Image.cpp |
| diff --git a/core/fxcodec/jbig2/JBig2_Image.cpp b/core/fxcodec/jbig2/JBig2_Image.cpp |
| index 311c38270ee940b0103752e6fe838c49ba2755a5..e4520d8b1ee12e35a4ca84a075a727e31da86b72 100644 |
| --- a/core/fxcodec/jbig2/JBig2_Image.cpp |
| +++ b/core/fxcodec/jbig2/JBig2_Image.cpp |
| @@ -665,20 +665,21 @@ FX_BOOL CJBig2_Image::composeTo_opt2(CJBig2_Image* pDst, |
| int32_t y, |
| JBig2ComposeOp op, |
| const FX_RECT* pSrcRect) { |
| - int32_t xs0, ys0, xs1, ys1, xd0, yd0, xd1, yd1, xx, yy, w, h, middleDwords, |
| - lineLeft; |
| - FX_DWORD s1, d1, d2, shift, shift1, shift2, tmp, tmp1, tmp2, maskL, maskR, |
| - maskM; |
| - uint8_t *lineSrc, *lineDst, *sp, *dp; |
| - int32_t sw, sh; |
| + int32_t xs0 = 0, ys0 = 0, xs1 = 0, ys1 = 0; |
|
dsinclair
2016/03/16 13:23:31
nit: one per line.
Wei Li
2016/03/16 17:51:31
Done.
Tom Sepez
2016/03/16 18:34:59
I didn't see how these could be used uninitialized
Wei Li
2016/03/17 02:24:05
Done.
|
| + int32_t xd0 = 0, yd0 = 0, xx = 0, yy = 0; |
| + FX_DWORD shift = 0, shift1 = 0, shift2 = 0; |
| + FX_DWORD tmp1 = 0, tmp2 = 0; |
| + uint8_t* sp = nullptr; |
| + uint8_t* dp = nullptr; |
| + FX_DWORD tmp = 0; |
| if (!m_pData) { |
| return FALSE; |
| } |
| if (x < -1048576 || x > 1048576 || y < -1048576 || y > 1048576) { |
|
Tom Sepez
2016/03/16 18:34:59
nit: they probably mean >= 1048576, since x wont f
Wei Li
2016/03/17 02:24:05
Ack. I am not certain about the code here, will de
|
| return FALSE; |
| } |
| - sw = pSrcRect->Width(); |
| - sh = pSrcRect->Height(); |
| + int32_t sw = pSrcRect->Width(); |
| + int32_t sh = pSrcRect->Height(); |
| if (y < 0) { |
| ys0 = -y; |
| } else { |
| @@ -702,8 +703,8 @@ FX_BOOL CJBig2_Image::composeTo_opt2(CJBig2_Image* pDst, |
| if ((ys0 >= ys1) || (xs0 >= xs1)) { |
| return 0; |
| } |
| - w = xs1 - xs0; |
| - h = ys1 - ys0; |
| + int32_t w = xs1 - xs0; |
| + int32_t h = ys1 - ys0; |
| if (y < 0) { |
| yd0 = 0; |
| } else { |
| @@ -714,18 +715,18 @@ FX_BOOL CJBig2_Image::composeTo_opt2(CJBig2_Image* pDst, |
| } else { |
| xd0 = x; |
| } |
| - xd1 = xd0 + w; |
| - yd1 = yd0 + h; |
| - d1 = xd0 & 31; |
| - d2 = xd1 & 31; |
| - s1 = xs0 & 31; |
| - maskL = 0xffffffff >> d1; |
| - maskR = 0xffffffff << ((32 - (xd1 & 31)) % 32); |
| - maskM = maskL & maskR; |
| - lineSrc = m_pData + (pSrcRect->top + ys0) * m_nStride + |
| - (((xs0 + pSrcRect->left) >> 5) << 2); |
| - lineLeft = m_nStride - ((xs0 >> 5) << 2); |
| - lineDst = pDst->m_pData + yd0 * pDst->m_nStride + ((xd0 >> 5) << 2); |
| + int32_t xd1 = xd0 + w; |
| + int32_t yd1 = yd0 + h; |
| + int32_t d1 = xd0 & 31; |
| + int32_t d2 = xd1 & 31; |
| + int32_t s1 = xs0 & 31; |
| + int32_t maskL = 0xffffffff >> d1; |
| + int32_t maskR = 0xffffffff << ((32 - (xd1 & 31)) % 32); |
| + int32_t maskM = maskL & maskR; |
| + uint8_t* lineSrc = m_pData + (pSrcRect->top + ys0) * m_nStride + |
| + (((xs0 + pSrcRect->left) >> 5) << 2); |
| + int32_t lineLeft = m_nStride - ((xs0 >> 5) << 2); |
| + uint8_t* lineDst = pDst->m_pData + yd0 * pDst->m_nStride + ((xd0 >> 5) << 2); |
| if ((xd0 & ~31) == ((xd1 - 1) & ~31)) { |
| if ((xs0 & ~31) == ((xs1 - 1) & ~31)) { |
| if (s1 > d1) { |
| @@ -820,6 +821,7 @@ FX_BOOL CJBig2_Image::composeTo_opt2(CJBig2_Image* pDst, |
| } |
| } |
| } else { |
| + int32_t middleDwords = 0; |
|
Tom Sepez
2016/03/16 18:34:59
I don't think this needs to persist between blocks
Wei Li
2016/03/17 02:24:05
Done.
|
| if (s1 > d1) { |
| shift1 = s1 - d1; |
| shift2 = 32 - shift1; |