| Index: core/src/fpdfapi/fpdf_render/fpdf_render_pattern.cpp
|
| diff --git a/core/src/fpdfapi/fpdf_render/fpdf_render_pattern.cpp b/core/src/fpdfapi/fpdf_render/fpdf_render_pattern.cpp
|
| index b9ff9f4750720a18a7ce10f285acd0948357cae7..43ce995f0537365203b377a448ce871836f15aa5 100644
|
| --- a/core/src/fpdfapi/fpdf_render/fpdf_render_pattern.cpp
|
| +++ b/core/src/fpdfapi/fpdf_render/fpdf_render_pattern.cpp
|
| @@ -83,8 +83,8 @@ static void DrawAxialShading(CFX_DIBitmap* pBitmap,
|
| for (int column = 0; column < width; column++) {
|
| FX_FLOAT x = (FX_FLOAT)column, y = (FX_FLOAT)row;
|
| matrix.Transform(x, y);
|
| - FX_FLOAT scale = FXSYS_Div(
|
| - ((x - start_x) * x_span) + ((y - start_y) * y_span), axis_len_square);
|
| + FX_FLOAT scale = (((x - start_x) * x_span) + ((y - start_y) * y_span)) /
|
| + axis_len_square;
|
| int index = (int32_t)(scale * (SHADING_STEPS - 1));
|
| if (index < 0) {
|
| if (!bStartExtend) {
|
| @@ -189,7 +189,7 @@ static void DrawRadialShading(CFX_DIBitmap* pBitmap,
|
| ((y - start_y) * (y - start_y)) - (start_r * start_r);
|
| FX_FLOAT s;
|
| if (a == 0) {
|
| - s = FXSYS_Div(-c, b);
|
| + s = -c / b;
|
| } else {
|
| FX_FLOAT b2_4ac = (b * b) - 4 * (a * c);
|
| if (b2_4ac < 0) {
|
| @@ -198,11 +198,11 @@ static void DrawRadialShading(CFX_DIBitmap* pBitmap,
|
| FX_FLOAT root = FXSYS_sqrt(b2_4ac);
|
| FX_FLOAT s1, s2;
|
| if (a > 0) {
|
| - s1 = FXSYS_Div(-b - root, 2 * a);
|
| - s2 = FXSYS_Div(-b + root, 2 * a);
|
| + s1 = (-b - root) / (2 * a);
|
| + s2 = (-b + root) / (2 * a);
|
| } else {
|
| - s2 = FXSYS_Div(-b - root, 2 * a);
|
| - s1 = FXSYS_Div(-b + root, 2 * a);
|
| + s2 = (-b - root) / (2 * a);
|
| + s1 = (-b + root) / (2 * a);
|
| }
|
| if (bDecreasing) {
|
| if (s1 >= 0 || bStartExtend) {
|
| @@ -1044,14 +1044,16 @@ void CPDF_RenderStatus::DrawTilingPattern(CPDF_TilingPattern* pPattern,
|
| mtDevice2Pattern.SetReverse(mtPattern2Device);
|
| CFX_FloatRect clip_box_p(clip_box);
|
| clip_box_p.Transform(&mtDevice2Pattern);
|
| - min_col = (int)FXSYS_ceil(
|
| - FXSYS_Div(clip_box_p.left - pPattern->m_BBox.right, pPattern->m_XStep));
|
| - max_col = (int)FXSYS_floor(
|
| - FXSYS_Div(clip_box_p.right - pPattern->m_BBox.left, pPattern->m_XStep));
|
| - min_row = (int)FXSYS_ceil(
|
| - FXSYS_Div(clip_box_p.bottom - pPattern->m_BBox.top, pPattern->m_YStep));
|
| - max_row = (int)FXSYS_floor(
|
| - FXSYS_Div(clip_box_p.top - pPattern->m_BBox.bottom, pPattern->m_YStep));
|
| +
|
| + min_col = (int)FXSYS_ceil((clip_box_p.left - pPattern->m_BBox.right) /
|
| + pPattern->m_XStep);
|
| + max_col = (int)FXSYS_floor((clip_box_p.right - pPattern->m_BBox.left) /
|
| + pPattern->m_XStep);
|
| + min_row = (int)FXSYS_ceil((clip_box_p.bottom - pPattern->m_BBox.top) /
|
| + pPattern->m_YStep);
|
| + max_row = (int)FXSYS_floor((clip_box_p.top - pPattern->m_BBox.bottom) /
|
| + pPattern->m_YStep);
|
| +
|
| if (width > clip_box.Width() || height > clip_box.Height() ||
|
| width * height > clip_box.Width() * clip_box.Height()) {
|
| CPDF_GraphicStates* pStates = NULL;
|
|
|