Remove trailing whitespaces in core.
[pdfium.git] / core / src / fxge / ge / fx_ge_path.cpp
index cd3ff0e..96f5762 100644 (file)
@@ -1,11 +1,13 @@
 // Copyright 2014 PDFium Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
+
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
+#include "../../../../third_party/base/numerics/safe_math.h"
 #include "../../../include/fxcrt/fx_basic.h"
 #include "../../../include/fxge/fx_ge.h"
+
 CFX_ClipRgn::CFX_ClipRgn(int width, int height)
 {
     m_Type = RectI;
@@ -63,8 +65,8 @@ void CFX_ClipRgn::IntersectMaskRect(FX_RECT rect, FX_RECT mask_rect, CFX_DIBitma
     }
     new_dib->Create(m_Box.Width(), m_Box.Height(), FXDIB_8bppMask);
     for (int row = m_Box.top; row < m_Box.bottom; row ++) {
-        FX_LPBYTE dest_scan = new_dib->GetBuffer() + new_dib->GetPitch() * (row - m_Box.top);
-        FX_LPBYTE src_scan = mask_dib->GetBuffer() + mask_dib->GetPitch() * (row - mask_rect.top);
+        uint8_t* dest_scan = new_dib->GetBuffer() + new_dib->GetPitch() * (row - m_Box.top);
+        uint8_t* src_scan = mask_dib->GetBuffer() + mask_dib->GetPitch() * (row - mask_rect.top);
         for (int col = m_Box.left; col < m_Box.right; col ++) {
             dest_scan[col - m_Box.left] = src_scan[col - mask_rect.left];
         }
@@ -96,9 +98,9 @@ void CFX_ClipRgn::IntersectMaskF(int left, int top, CFX_DIBitmapRef Mask)
         new_dib->Create(new_box.Width(), new_box.Height(), FXDIB_8bppMask);
         const CFX_DIBitmap* old_dib = m_Mask;
         for (int row = new_box.top; row < new_box.bottom; row ++) {
-            FX_LPBYTE old_scan = old_dib->GetBuffer() + (row - m_Box.top) * old_dib->GetPitch();
-            FX_LPBYTE mask_scan = mask_dib->GetBuffer() + (row - top) * mask_dib->GetPitch();
-            FX_LPBYTE new_scan = new_dib->GetBuffer() + (row - new_box.top) * new_dib->GetPitch();
+            uint8_t* old_scan = old_dib->GetBuffer() + (row - m_Box.top) * old_dib->GetPitch();
+            uint8_t* mask_scan = mask_dib->GetBuffer() + (row - top) * mask_dib->GetPitch();
+            uint8_t* new_scan = new_dib->GetBuffer() + (row - new_box.top) * new_dib->GetPitch();
             for (int col = new_box.left; col < new_box.right; col ++) {
                 new_scan[col - new_box.left] = old_scan[col - m_Box.left] * mask_scan[col - left] / 255;
             }
@@ -120,7 +122,7 @@ CFX_PathData::~CFX_PathData()
         FX_Free(m_pPoints);
     }
 }
-FX_BOOL CFX_PathData::SetPointCount(int nPoints)
+void CFX_PathData::SetPointCount(int nPoints)
 {
     m_PointCount = nPoints;
     if (m_AllocCount < nPoints) {
@@ -129,22 +131,15 @@ FX_BOOL CFX_PathData::SetPointCount(int nPoints)
             m_pPoints = NULL;
         }
         m_pPoints = FX_Alloc(FX_PATHPOINT, nPoints);
-        if (!m_pPoints) {
-            return FALSE;
-        }
         m_AllocCount = nPoints;
     }
-    return TRUE;
 }
-FX_BOOL CFX_PathData::AllocPointCount(int nPoints)
+void CFX_PathData::AllocPointCount(int nPoints)
 {
     if (m_AllocCount < nPoints) {
         FX_PATHPOINT* pNewBuf = FX_Alloc(FX_PATHPOINT, nPoints);
-        if (!pNewBuf) {
-            return FALSE;
-        }
         if (m_PointCount) {
-            FXSYS_memcpy32(pNewBuf, m_pPoints, m_PointCount * sizeof(FX_PATHPOINT));
+            FXSYS_memcpy(pNewBuf, m_pPoints, m_PointCount * sizeof(FX_PATHPOINT));
         }
         if (m_pPoints) {
             FX_Free(m_pPoints);
@@ -152,17 +147,12 @@ FX_BOOL CFX_PathData::AllocPointCount(int nPoints)
         m_pPoints = pNewBuf;
         m_AllocCount = nPoints;
     }
-    return TRUE;
 }
 CFX_PathData::CFX_PathData(const CFX_PathData& src)
 {
-    m_pPoints = NULL;
     m_PointCount = m_AllocCount = src.m_PointCount;
     m_pPoints = FX_Alloc(FX_PATHPOINT, src.m_PointCount);
-    if (!m_pPoints) {
-        return;
-    }
-    FXSYS_memcpy32(m_pPoints, src.m_pPoints, sizeof(FX_PATHPOINT) * m_PointCount);
+    FXSYS_memcpy(m_pPoints, src.m_pPoints, sizeof(FX_PATHPOINT) * m_PointCount);
 }
 void CFX_PathData::TrimPoints(int nPoints)
 {
@@ -171,29 +161,24 @@ void CFX_PathData::TrimPoints(int nPoints)
     }
     SetPointCount(nPoints);
 }
-FX_BOOL CFX_PathData::AddPointCount(int addPoints)
+void CFX_PathData::AddPointCount(int addPoints)
 {
-    int new_count = m_PointCount + addPoints;
-    if (!AllocPointCount(new_count)) {
-        return FALSE;
-    }
+    pdfium::base::CheckedNumeric<int> safe_new_count = m_PointCount;
+    safe_new_count += addPoints;
+    int new_count = safe_new_count.ValueOrDie();
+    AllocPointCount(new_count);
     m_PointCount = new_count;
-    return TRUE;
 }
-FX_BOOL CFX_PathData::Append(const CFX_PathData* pSrc, const CFX_AffineMatrix* pMatrix)
+void CFX_PathData::Append(const CFX_PathData* pSrc, const CFX_AffineMatrix* pMatrix)
 {
     int old_count = m_PointCount;
-    if (!AddPointCount(pSrc->m_PointCount)) {
-        return FALSE;
-    }
-    FXSYS_memcpy32(m_pPoints + old_count, pSrc->m_pPoints, pSrc->m_PointCount * sizeof(FX_PATHPOINT));
-    if (pMatrix == NULL) {
-        return TRUE;
-    }
-    for (int i = 0; i < pSrc->m_PointCount; i ++) {
-        pMatrix->Transform(m_pPoints[old_count + i].m_PointX, m_pPoints[old_count + i].m_PointY);
+    AddPointCount(pSrc->m_PointCount);
+    FXSYS_memcpy(m_pPoints + old_count, pSrc->m_pPoints, pSrc->m_PointCount * sizeof(FX_PATHPOINT));
+    if (pMatrix) {
+        for (int i = 0; i < pSrc->m_PointCount; i ++) {
+            pMatrix->Transform(m_pPoints[old_count + i].m_PointX, m_pPoints[old_count + i].m_PointY);
+        }
     }
-    return TRUE;
 }
 void CFX_PathData::SetPoint(int index, FX_FLOAT x, FX_FLOAT y, int flag)
 {
@@ -202,12 +187,10 @@ void CFX_PathData::SetPoint(int index, FX_FLOAT x, FX_FLOAT y, int flag)
     m_pPoints[index].m_PointY = y;
     m_pPoints[index].m_Flag = flag;
 }
-FX_BOOL CFX_PathData::AppendRect(FX_FLOAT left, FX_FLOAT bottom, FX_FLOAT right, FX_FLOAT top)
+void CFX_PathData::AppendRect(FX_FLOAT left, FX_FLOAT bottom, FX_FLOAT right, FX_FLOAT top)
 {
     int old_count = m_PointCount;
-    if (!AddPointCount(5)) {
-        return FALSE;
-    }
+    AddPointCount(5);
     FX_PATHPOINT* pPoints = m_pPoints + old_count;
     pPoints[0].m_PointX = pPoints[1].m_PointX = pPoints[4].m_PointX = left;
     pPoints[2].m_PointX = pPoints[3].m_PointX = right;
@@ -216,7 +199,6 @@ FX_BOOL CFX_PathData::AppendRect(FX_FLOAT left, FX_FLOAT bottom, FX_FLOAT right,
     pPoints[0].m_Flag = FXPT_MOVETO;
     pPoints[1].m_Flag = pPoints[2].m_Flag = pPoints[3].m_Flag = FXPT_LINETO;
     pPoints[4].m_Flag = FXPT_LINETO | FXPT_CLOSEFIGURE;
-    return TRUE;
 }
 CFX_FloatRect CFX_PathData::GetBoundingBox() const
 {
@@ -405,7 +387,6 @@ void CFX_PathData::Transform(const CFX_AffineMatrix* pMatrix)
         pMatrix->Transform(m_pPoints[i].m_PointX, m_pPoints[i].m_PointY);
     }
 }
-const int g_Distant[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
 FX_BOOL CFX_PathData::GetZeroAreaPath(CFX_PathData& NewPath, CFX_AffineMatrix* pMatrix, FX_BOOL&bThin, FX_BOOL bAdjust) const
 {
     if (m_PointCount < 3) {
@@ -591,13 +572,10 @@ FX_BOOL CFX_PathData::IsRect(const CFX_AffineMatrix* pMatrix, CFX_FloatRect* pRe
     }
     return TRUE;
 }
-FX_BOOL CFX_PathData::Copy(const CFX_PathData &src)
+void CFX_PathData::Copy(const CFX_PathData &src)
 {
-    if (!SetPointCount(src.m_PointCount)) {
-        return FALSE;
-    }
-    FXSYS_memcpy32(m_pPoints, src.m_pPoints, sizeof(FX_PATHPOINT) * m_PointCount);
-    return TRUE;
+    SetPointCount(src.m_PointCount);
+    FXSYS_memcpy(m_pPoints, src.m_pPoints, sizeof(FX_PATHPOINT) * m_PointCount);
 }
 CFX_GraphStateData::CFX_GraphStateData()
 {
@@ -628,10 +606,7 @@ void CFX_GraphStateData::Copy(const CFX_GraphStateData& src)
     m_LineWidth = src.m_LineWidth;
     if (m_DashCount) {
         m_DashArray = FX_Alloc(FX_FLOAT, m_DashCount);
-        if (!m_DashArray) {
-            return;
-        }
-        FXSYS_memcpy32(m_DashArray, src.m_DashArray, m_DashCount * sizeof(FX_FLOAT));
+        FXSYS_memcpy(m_DashArray, src.m_DashArray, m_DashCount * sizeof(FX_FLOAT));
     }
 }
 CFX_GraphStateData::~CFX_GraphStateData()