diff options
author | dsinclair <dsinclair@chromium.org> | 2016-10-12 13:05:38 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-10-12 13:05:38 -0700 |
commit | 798e18f5e5cfb672c7f3186f6358b84c5ff7785b (patch) | |
tree | 1d5aff0f1a80bc9dc67c6dcfa67ca8161e47f58d | |
parent | 8779fa8578cf3336ddd4473f833900aba2e595fb (diff) | |
download | pdfium-798e18f5e5cfb672c7f3186f6358b84c5ff7785b.tar.xz |
Convert from int to float values.
The CPDF_Page::GetDisplayMatrix expects to set float values into the
|display_matrix| but all of the input values are currently int. It is possible
to overflow the int values, so this CL changes the variables to be int which
closer reflects what they're being used for.
BUG=chromium:652038
Review-Url: https://codereview.chromium.org/2412983002
-rw-r--r-- | core/fpdfapi/page/cpdf_page.cpp | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/core/fpdfapi/page/cpdf_page.cpp b/core/fpdfapi/page/cpdf_page.cpp index 89d0b35f3e..2143ddb015 100644 --- a/core/fpdfapi/page/cpdf_page.cpp +++ b/core/fpdfapi/page/cpdf_page.cpp @@ -126,12 +126,12 @@ void CPDF_Page::GetDisplayMatrix(CFX_Matrix& matrix, return; } CFX_Matrix display_matrix; - int x0 = 0; - int y0 = 0; - int x1 = 0; - int y1 = 0; - int x2 = 0; - int y2 = 0; + float x0 = 0; + float y0 = 0; + float x1 = 0; + float y1 = 0; + float x2 = 0; + float y2 = 0; iRotate %= 4; switch (iRotate) { case 0: @@ -167,10 +167,9 @@ void CPDF_Page::GetDisplayMatrix(CFX_Matrix& matrix, y2 = yPos; break; } - display_matrix.Set( - ((FX_FLOAT)(x2 - x0)) / m_PageWidth, ((FX_FLOAT)(y2 - y0)) / m_PageWidth, - ((FX_FLOAT)(x1 - x0)) / m_PageHeight, - ((FX_FLOAT)(y1 - y0)) / m_PageHeight, (FX_FLOAT)x0, (FX_FLOAT)y0); + display_matrix.Set((x2 - x0) / m_PageWidth, (y2 - y0) / m_PageWidth, + (x1 - x0) / m_PageHeight, (y1 - y0) / m_PageHeight, x0, + y0); matrix = m_PageMatrix; matrix.Concat(display_matrix); } |