Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(177)

Side by Side Diff: core/src/fxge/ge/fx_ge_path.cpp

Issue 1142713005: Remove FX_Alloc() null checks now that it can't return NULL. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 PDFium Authors. All rights reserved. 1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 6
7 #include "../../../include/fxcrt/fx_basic.h" 7 #include "../../../include/fxcrt/fx_basic.h"
8 #include "../../../include/fxge/fx_ge.h" 8 #include "../../../include/fxge/fx_ge.h"
9 CFX_ClipRgn::CFX_ClipRgn(int width, int height) 9 CFX_ClipRgn::CFX_ClipRgn(int width, int height)
10 { 10 {
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 { 113 {
114 m_PointCount = m_AllocCount = 0; 114 m_PointCount = m_AllocCount = 0;
115 m_pPoints = NULL; 115 m_pPoints = NULL;
116 } 116 }
117 CFX_PathData::~CFX_PathData() 117 CFX_PathData::~CFX_PathData()
118 { 118 {
119 if (m_pPoints) { 119 if (m_pPoints) {
120 FX_Free(m_pPoints); 120 FX_Free(m_pPoints);
121 } 121 }
122 } 122 }
123 FX_BOOL CFX_PathData::SetPointCount(int nPoints) 123 void CFX_PathData::SetPointCount(int nPoints)
124 { 124 {
125 m_PointCount = nPoints; 125 m_PointCount = nPoints;
126 if (m_AllocCount < nPoints) { 126 if (m_AllocCount < nPoints) {
127 if (m_pPoints) { 127 if (m_pPoints) {
128 FX_Free(m_pPoints); 128 FX_Free(m_pPoints);
129 m_pPoints = NULL; 129 m_pPoints = NULL;
130 } 130 }
131 m_pPoints = FX_Alloc(FX_PATHPOINT, nPoints); 131 m_pPoints = FX_Alloc(FX_PATHPOINT, nPoints);
132 if (!m_pPoints) {
133 return FALSE;
134 }
135 m_AllocCount = nPoints; 132 m_AllocCount = nPoints;
136 } 133 }
137 return TRUE;
138 } 134 }
139 FX_BOOL CFX_PathData::AllocPointCount(int nPoints) 135 void CFX_PathData::AllocPointCount(int nPoints)
140 { 136 {
141 if (m_AllocCount < nPoints) { 137 if (m_AllocCount < nPoints) {
142 FX_PATHPOINT* pNewBuf = FX_Alloc(FX_PATHPOINT, nPoints); 138 FX_PATHPOINT* pNewBuf = FX_Alloc(FX_PATHPOINT, nPoints);
143 if (!pNewBuf) {
144 return FALSE;
145 }
146 if (m_PointCount) { 139 if (m_PointCount) {
147 FXSYS_memcpy32(pNewBuf, m_pPoints, m_PointCount * sizeof(FX_PATHPOIN T)); 140 FXSYS_memcpy32(pNewBuf, m_pPoints, m_PointCount * sizeof(FX_PATHPOIN T));
148 } 141 }
149 if (m_pPoints) { 142 if (m_pPoints) {
150 FX_Free(m_pPoints); 143 FX_Free(m_pPoints);
151 } 144 }
152 m_pPoints = pNewBuf; 145 m_pPoints = pNewBuf;
153 m_AllocCount = nPoints; 146 m_AllocCount = nPoints;
154 } 147 }
155 return TRUE;
156 } 148 }
157 CFX_PathData::CFX_PathData(const CFX_PathData& src) 149 CFX_PathData::CFX_PathData(const CFX_PathData& src)
158 { 150 {
159 m_pPoints = NULL;
160 m_PointCount = m_AllocCount = src.m_PointCount; 151 m_PointCount = m_AllocCount = src.m_PointCount;
161 m_pPoints = FX_Alloc(FX_PATHPOINT, src.m_PointCount); 152 m_pPoints = FX_Alloc(FX_PATHPOINT, src.m_PointCount);
162 if (!m_pPoints) {
163 return;
164 }
165 FXSYS_memcpy32(m_pPoints, src.m_pPoints, sizeof(FX_PATHPOINT) * m_PointCount ); 153 FXSYS_memcpy32(m_pPoints, src.m_pPoints, sizeof(FX_PATHPOINT) * m_PointCount );
166 } 154 }
167 void CFX_PathData::TrimPoints(int nPoints) 155 void CFX_PathData::TrimPoints(int nPoints)
168 { 156 {
169 if (m_PointCount <= nPoints) { 157 if (m_PointCount <= nPoints) {
170 return; 158 return;
171 } 159 }
172 SetPointCount(nPoints); 160 SetPointCount(nPoints);
173 } 161 }
174 FX_BOOL CFX_PathData::AddPointCount(int addPoints) 162 void CFX_PathData::AddPointCount(int addPoints)
175 { 163 {
176 int new_count = m_PointCount + addPoints; 164 int new_count = m_PointCount + addPoints;
Lei Zhang 2015/05/19 19:07:17 note for later: probably should make sure this doe
Tom Sepez 2015/05/19 20:08:57 Did it now.
177 if (!AllocPointCount(new_count)) { 165 AllocPointCount(new_count);
178 return FALSE;
179 }
180 m_PointCount = new_count; 166 m_PointCount = new_count;
181 return TRUE;
182 } 167 }
183 FX_BOOL CFX_PathData::Append(const CFX_PathData* pSrc, const CFX_AffineMatrix* p Matrix) 168 void CFX_PathData::Append(const CFX_PathData* pSrc, const CFX_AffineMatrix* pMat rix)
184 { 169 {
185 int old_count = m_PointCount; 170 int old_count = m_PointCount;
186 if (!AddPointCount(pSrc->m_PointCount)) { 171 AddPointCount(pSrc->m_PointCount);
187 return FALSE; 172 FXSYS_memcpy32(m_pPoints + old_count, pSrc->m_pPoints, pSrc->m_PointCount * sizeof(FX_PATHPOINT));
173 if (pMatrix) {
174 for (int i = 0; i < pSrc->m_PointCount; i ++) {
175 pMatrix->Transform(m_pPoints[old_count + i].m_PointX, m_pPoints[old_ count + i].m_PointY);
176 }
188 } 177 }
189 FXSYS_memcpy32(m_pPoints + old_count, pSrc->m_pPoints, pSrc->m_PointCount * sizeof(FX_PATHPOINT));
190 if (pMatrix == NULL) {
191 return TRUE;
192 }
193 for (int i = 0; i < pSrc->m_PointCount; i ++) {
194 pMatrix->Transform(m_pPoints[old_count + i].m_PointX, m_pPoints[old_coun t + i].m_PointY);
195 }
196 return TRUE;
197 } 178 }
198 void CFX_PathData::SetPoint(int index, FX_FLOAT x, FX_FLOAT y, int flag) 179 void CFX_PathData::SetPoint(int index, FX_FLOAT x, FX_FLOAT y, int flag)
199 { 180 {
200 ASSERT(index < m_PointCount); 181 ASSERT(index < m_PointCount);
201 m_pPoints[index].m_PointX = x; 182 m_pPoints[index].m_PointX = x;
202 m_pPoints[index].m_PointY = y; 183 m_pPoints[index].m_PointY = y;
203 m_pPoints[index].m_Flag = flag; 184 m_pPoints[index].m_Flag = flag;
204 } 185 }
205 FX_BOOL CFX_PathData::AppendRect(FX_FLOAT left, FX_FLOAT bottom, FX_FLOAT right, FX_FLOAT top) 186 void CFX_PathData::AppendRect(FX_FLOAT left, FX_FLOAT bottom, FX_FLOAT right, FX _FLOAT top)
206 { 187 {
207 int old_count = m_PointCount; 188 int old_count = m_PointCount;
208 if (!AddPointCount(5)) { 189 AddPointCount(5);
209 return FALSE;
210 }
211 FX_PATHPOINT* pPoints = m_pPoints + old_count; 190 FX_PATHPOINT* pPoints = m_pPoints + old_count;
212 pPoints[0].m_PointX = pPoints[1].m_PointX = pPoints[4].m_PointX = left; 191 pPoints[0].m_PointX = pPoints[1].m_PointX = pPoints[4].m_PointX = left;
213 pPoints[2].m_PointX = pPoints[3].m_PointX = right; 192 pPoints[2].m_PointX = pPoints[3].m_PointX = right;
214 pPoints[0].m_PointY = pPoints[3].m_PointY = pPoints[4].m_PointY = bottom; 193 pPoints[0].m_PointY = pPoints[3].m_PointY = pPoints[4].m_PointY = bottom;
215 pPoints[1].m_PointY = pPoints[2].m_PointY = top; 194 pPoints[1].m_PointY = pPoints[2].m_PointY = top;
216 pPoints[0].m_Flag = FXPT_MOVETO; 195 pPoints[0].m_Flag = FXPT_MOVETO;
217 pPoints[1].m_Flag = pPoints[2].m_Flag = pPoints[3].m_Flag = FXPT_LINETO; 196 pPoints[1].m_Flag = pPoints[2].m_Flag = pPoints[3].m_Flag = FXPT_LINETO;
218 pPoints[4].m_Flag = FXPT_LINETO | FXPT_CLOSEFIGURE; 197 pPoints[4].m_Flag = FXPT_LINETO | FXPT_CLOSEFIGURE;
219 return TRUE;
220 } 198 }
221 CFX_FloatRect CFX_PathData::GetBoundingBox() const 199 CFX_FloatRect CFX_PathData::GetBoundingBox() const
222 { 200 {
223 CFX_FloatRect rect; 201 CFX_FloatRect rect;
224 if (m_PointCount) { 202 if (m_PointCount) {
225 rect.InitRect(m_pPoints[0].m_PointX, m_pPoints[0].m_PointY); 203 rect.InitRect(m_pPoints[0].m_PointX, m_pPoints[0].m_PointY);
226 for (int i = 1; i < m_PointCount; i ++) { 204 for (int i = 1; i < m_PointCount; i ++) {
227 rect.UpdateRect(m_pPoints[i].m_PointX, m_pPoints[i].m_PointY); 205 rect.UpdateRect(m_pPoints[i].m_PointX, m_pPoints[i].m_PointY);
228 } 206 }
229 } 207 }
(...skipping 353 matching lines...) Expand 10 before | Expand all | Expand 10 after
583 } 561 }
584 if (pRect) { 562 if (pRect) {
585 pRect->left = x[0]; 563 pRect->left = x[0];
586 pRect->right = x[2]; 564 pRect->right = x[2];
587 pRect->bottom = y[0]; 565 pRect->bottom = y[0];
588 pRect->top = y[2]; 566 pRect->top = y[2];
589 pRect->Normalize(); 567 pRect->Normalize();
590 } 568 }
591 return TRUE; 569 return TRUE;
592 } 570 }
593 FX_BOOL CFX_PathData::Copy(const CFX_PathData &src) 571 void CFX_PathData::Copy(const CFX_PathData &src)
594 { 572 {
595 if (!SetPointCount(src.m_PointCount)) { 573 SetPointCount(src.m_PointCount);
596 return FALSE;
597 }
598 FXSYS_memcpy32(m_pPoints, src.m_pPoints, sizeof(FX_PATHPOINT) * m_PointCount ); 574 FXSYS_memcpy32(m_pPoints, src.m_pPoints, sizeof(FX_PATHPOINT) * m_PointCount );
599 return TRUE;
600 } 575 }
601 CFX_GraphStateData::CFX_GraphStateData() 576 CFX_GraphStateData::CFX_GraphStateData()
602 { 577 {
603 m_LineCap = LineCapButt; 578 m_LineCap = LineCapButt;
604 m_DashCount = 0; 579 m_DashCount = 0;
605 m_DashArray = NULL; 580 m_DashArray = NULL;
606 m_DashPhase = 0; 581 m_DashPhase = 0;
607 m_LineJoin = LineJoinMiter; 582 m_LineJoin = LineJoinMiter;
608 m_MiterLimit = 10 * 1.0f; 583 m_MiterLimit = 10 * 1.0f;
609 m_LineWidth = 1.0f; 584 m_LineWidth = 1.0f;
(...skipping 10 matching lines...) Expand all
620 if (m_DashArray) { 595 if (m_DashArray) {
621 FX_Free(m_DashArray); 596 FX_Free(m_DashArray);
622 } 597 }
623 m_DashArray = NULL; 598 m_DashArray = NULL;
624 m_DashPhase = src.m_DashPhase; 599 m_DashPhase = src.m_DashPhase;
625 m_LineJoin = src.m_LineJoin; 600 m_LineJoin = src.m_LineJoin;
626 m_MiterLimit = src.m_MiterLimit; 601 m_MiterLimit = src.m_MiterLimit;
627 m_LineWidth = src.m_LineWidth; 602 m_LineWidth = src.m_LineWidth;
628 if (m_DashCount) { 603 if (m_DashCount) {
629 m_DashArray = FX_Alloc(FX_FLOAT, m_DashCount); 604 m_DashArray = FX_Alloc(FX_FLOAT, m_DashCount);
630 if (!m_DashArray) {
631 return;
632 }
633 FXSYS_memcpy32(m_DashArray, src.m_DashArray, m_DashCount * sizeof(FX_FLO AT)); 605 FXSYS_memcpy32(m_DashArray, src.m_DashArray, m_DashCount * sizeof(FX_FLO AT));
634 } 606 }
635 } 607 }
636 CFX_GraphStateData::~CFX_GraphStateData() 608 CFX_GraphStateData::~CFX_GraphStateData()
637 { 609 {
638 if (m_DashArray) { 610 if (m_DashArray) {
639 FX_Free(m_DashArray); 611 FX_Free(m_DashArray);
640 } 612 }
641 } 613 }
642 void CFX_GraphStateData::SetDashCount(int count) 614 void CFX_GraphStateData::SetDashCount(int count)
643 { 615 {
644 if (m_DashArray) { 616 if (m_DashArray) {
645 FX_Free(m_DashArray); 617 FX_Free(m_DashArray);
646 } 618 }
647 m_DashArray = NULL; 619 m_DashArray = NULL;
648 m_DashCount = count; 620 m_DashCount = count;
649 if (count == 0) { 621 if (count == 0) {
650 return; 622 return;
651 } 623 }
652 m_DashArray = FX_Alloc(FX_FLOAT, count); 624 m_DashArray = FX_Alloc(FX_FLOAT, count);
653 } 625 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698