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

Side by Side Diff: xfa/fgas/crt/fgas_utils.cpp

Issue 2095653002: Remove NULL in xfa/ (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Rebase to master Created 4 years, 6 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
« no previous file with comments | « xfa/fgas/crt/fgas_utils.h ('k') | xfa/fgas/font/fgas_font.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "xfa/fgas/crt/fgas_utils.h" 7 #include "xfa/fgas/crt/fgas_utils.h"
8 8
9 #include <algorithm> 9 #include <algorithm>
10 10
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
126 iCount = iBlockCount; 126 iCount = iBlockCount;
127 iBlockCount = 0; 127 iBlockCount = 0;
128 } else { 128 } else {
129 iBlockCount -= iCount; 129 iBlockCount -= iCount;
130 } 130 }
131 return iCount; 131 return iCount;
132 } 132 }
133 void CFX_BaseArray::RemoveAll(FX_BOOL bLeaveMemory) { 133 void CFX_BaseArray::RemoveAll(FX_BOOL bLeaveMemory) {
134 if (!bLeaveMemory) { 134 if (!bLeaveMemory) {
135 uint8_t*& pBuffer = m_pData->pBuffer; 135 uint8_t*& pBuffer = m_pData->pBuffer;
136 if (pBuffer != NULL) { 136 if (pBuffer) {
137 FX_Free(pBuffer); 137 FX_Free(pBuffer);
138 pBuffer = NULL; 138 pBuffer = nullptr;
139 } 139 }
140 m_pData->iTotalCount = 0; 140 m_pData->iTotalCount = 0;
141 } 141 }
142 m_pData->iBlockCount = 0; 142 m_pData->iBlockCount = 0;
143 } 143 }
144 144
145 CFX_BaseMassArrayImp::CFX_BaseMassArrayImp(int32_t iChunkSize, 145 CFX_BaseMassArrayImp::CFX_BaseMassArrayImp(int32_t iChunkSize,
146 int32_t iBlockSize) 146 int32_t iBlockSize)
147 : m_iChunkSize(iChunkSize), 147 : m_iChunkSize(iChunkSize),
148 m_iBlockSize(iBlockSize), 148 m_iBlockSize(iBlockSize),
(...skipping 22 matching lines...) Expand all
171 pChunk = FX_Alloc(uint8_t, iMemSize); 171 pChunk = FX_Alloc(uint8_t, iMemSize);
172 if (m_iChunkCount < m_pData->GetSize()) { 172 if (m_iChunkCount < m_pData->GetSize()) {
173 m_pData->SetAt(m_iChunkCount, pChunk); 173 m_pData->SetAt(m_iChunkCount, pChunk);
174 } else { 174 } else {
175 m_pData->Add(pChunk); 175 m_pData->Add(pChunk);
176 } 176 }
177 m_iChunkCount++; 177 m_iChunkCount++;
178 } 178 }
179 } 179 }
180 } 180 }
181 ASSERT(pChunk != NULL); 181 ASSERT(pChunk);
182 m_iBlockCount = index + 1; 182 m_iBlockCount = index + 1;
183 return pChunk + (index % m_iChunkSize) * m_iBlockSize; 183 return pChunk + (index % m_iChunkSize) * m_iBlockSize;
184 } 184 }
185 uint8_t* CFX_BaseMassArrayImp::GetAt(int32_t index) const { 185 uint8_t* CFX_BaseMassArrayImp::GetAt(int32_t index) const {
186 ASSERT(index > -1 && index < m_iBlockCount); 186 ASSERT(index > -1 && index < m_iBlockCount);
187 uint8_t* pChunk = (uint8_t*)m_pData->GetAt(index / m_iChunkSize); 187 uint8_t* pChunk = (uint8_t*)m_pData->GetAt(index / m_iChunkSize);
188 ASSERT(pChunk != NULL); 188 ASSERT(pChunk);
189 return pChunk + (index % m_iChunkSize) * m_iBlockSize; 189 return pChunk + (index % m_iChunkSize) * m_iBlockSize;
190 } 190 }
191 int32_t CFX_BaseMassArrayImp::Append(const CFX_BaseMassArrayImp& src, 191 int32_t CFX_BaseMassArrayImp::Append(const CFX_BaseMassArrayImp& src,
192 int32_t iStart, 192 int32_t iStart,
193 int32_t iCount) { 193 int32_t iCount) {
194 ASSERT(m_iBlockSize == src.m_iBlockSize); 194 ASSERT(m_iBlockSize == src.m_iBlockSize);
195 int32_t iAdded = src.m_iBlockCount; 195 int32_t iAdded = src.m_iBlockCount;
196 ASSERT(iStart > -1 && iStart < iAdded); 196 ASSERT(iStart > -1 && iStart < iAdded);
197 if (iCount < 0) { 197 if (iCount < 0) {
198 iCount = iAdded; 198 iCount = iAdded;
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
251 int32_t iDstChunkIndex = iDstStart / m_iChunkSize; 251 int32_t iDstChunkIndex = iDstStart / m_iChunkSize;
252 int32_t iSrcChunkIndex = iSrcStart / src.m_iChunkSize; 252 int32_t iSrcChunkIndex = iSrcStart / src.m_iChunkSize;
253 uint8_t* pDstChunk = (uint8_t*)GetAt(iDstStart); 253 uint8_t* pDstChunk = (uint8_t*)GetAt(iDstStart);
254 uint8_t* pSrcChunk = (uint8_t*)src.GetAt(iSrcStart); 254 uint8_t* pSrcChunk = (uint8_t*)src.GetAt(iSrcStart);
255 int32_t iDstChunkSize = m_iChunkSize - (iDstStart % m_iChunkSize); 255 int32_t iDstChunkSize = m_iChunkSize - (iDstStart % m_iChunkSize);
256 int32_t iSrcChunkSize = src.m_iChunkSize - (iSrcStart % src.m_iChunkSize); 256 int32_t iSrcChunkSize = src.m_iChunkSize - (iSrcStart % src.m_iChunkSize);
257 int32_t iCopySize = 257 int32_t iCopySize =
258 std::min(iSrcCount, std::min(iSrcChunkSize, iDstChunkSize)); 258 std::min(iSrcCount, std::min(iSrcChunkSize, iDstChunkSize));
259 int32_t iCopyBytes = iCopySize * m_iBlockSize; 259 int32_t iCopyBytes = iCopySize * m_iBlockSize;
260 while (iSrcCount > 0) { 260 while (iSrcCount > 0) {
261 ASSERT(pDstChunk != NULL && pSrcChunk != NULL); 261 ASSERT(pDstChunk && pSrcChunk);
262 FXSYS_memcpy(pDstChunk, pSrcChunk, iCopyBytes); 262 FXSYS_memcpy(pDstChunk, pSrcChunk, iCopyBytes);
263 iSrcCount -= iCopySize; 263 iSrcCount -= iCopySize;
264 iSrcChunkSize -= iCopySize; 264 iSrcChunkSize -= iCopySize;
265 if (iSrcChunkSize < 1) { 265 if (iSrcChunkSize < 1) {
266 iSrcChunkSize = src.m_iChunkSize; 266 iSrcChunkSize = src.m_iChunkSize;
267 iSrcChunkIndex++; 267 iSrcChunkIndex++;
268 pSrcChunk = (uint8_t*)src.m_pData->GetAt(iSrcChunkIndex); 268 pSrcChunk = (uint8_t*)src.m_pData->GetAt(iSrcChunkIndex);
269 } else { 269 } else {
270 pSrcChunk += iCopyBytes; 270 pSrcChunk += iCopyBytes;
271 } 271 }
(...skipping 15 matching lines...) Expand all
287 } else { 287 } else {
288 m_iBlockCount -= iCount; 288 m_iBlockCount -= iCount;
289 } 289 }
290 return m_iBlockCount; 290 return m_iBlockCount;
291 } 291 }
292 void CFX_BaseMassArrayImp::RemoveAll(FX_BOOL bLeaveMemory) { 292 void CFX_BaseMassArrayImp::RemoveAll(FX_BOOL bLeaveMemory) {
293 if (bLeaveMemory) { 293 if (bLeaveMemory) {
294 m_iBlockCount = 0; 294 m_iBlockCount = 0;
295 return; 295 return;
296 } 296 }
297 for (int32_t i = 0; i < m_iChunkCount; i++) { 297 for (int32_t i = 0; i < m_iChunkCount; i++)
298 void* p = m_pData->GetAt(i); 298 FX_Free(m_pData->GetAt(i));
299 if (p == NULL) { 299
300 continue;
301 }
302 FX_Free(p);
303 }
304 m_pData->RemoveAll(); 300 m_pData->RemoveAll();
305 m_iChunkCount = 0; 301 m_iChunkCount = 0;
306 m_iBlockCount = 0; 302 m_iBlockCount = 0;
307 } 303 }
308 CFX_BaseMassArray::CFX_BaseMassArray(int32_t iChunkSize, int32_t iBlockSize) { 304 CFX_BaseMassArray::CFX_BaseMassArray(int32_t iChunkSize, int32_t iBlockSize) {
309 m_pData = new CFX_BaseMassArrayImp(iChunkSize, iBlockSize); 305 m_pData = new CFX_BaseMassArrayImp(iChunkSize, iBlockSize);
310 } 306 }
311 CFX_BaseMassArray::~CFX_BaseMassArray() { 307 CFX_BaseMassArray::~CFX_BaseMassArray() {
312 delete m_pData; 308 delete m_pData;
313 } 309 }
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
356 } 352 }
357 CFX_BaseDiscreteArray::~CFX_BaseDiscreteArray() { 353 CFX_BaseDiscreteArray::~CFX_BaseDiscreteArray() {
358 RemoveAll(); 354 RemoveAll();
359 delete static_cast<FX_BASEDISCRETEARRAYDATA*>(m_pData); 355 delete static_cast<FX_BASEDISCRETEARRAYDATA*>(m_pData);
360 } 356 }
361 uint8_t* CFX_BaseDiscreteArray::AddSpaceTo(int32_t index) { 357 uint8_t* CFX_BaseDiscreteArray::AddSpaceTo(int32_t index) {
362 ASSERT(index > -1); 358 ASSERT(index > -1);
363 FX_BASEDISCRETEARRAYDATA* pData = (FX_BASEDISCRETEARRAYDATA*)m_pData; 359 FX_BASEDISCRETEARRAYDATA* pData = (FX_BASEDISCRETEARRAYDATA*)m_pData;
364 int32_t& iChunkCount = pData->iChunkCount; 360 int32_t& iChunkCount = pData->iChunkCount;
365 int32_t iChunkSize = pData->iChunkSize; 361 int32_t iChunkSize = pData->iChunkSize;
366 uint8_t* pChunk = NULL; 362 uint8_t* pChunk = nullptr;
367 int32_t iChunk = index / iChunkSize; 363 int32_t iChunk = index / iChunkSize;
368 if (iChunk < iChunkCount) { 364 if (iChunk < iChunkCount) {
369 pChunk = pData->ChunkBuffer.GetAt(iChunk); 365 pChunk = pData->ChunkBuffer.GetAt(iChunk);
370 } 366 }
371 if (!pChunk) { 367 if (!pChunk) {
372 pChunk = FX_Alloc2D(uint8_t, iChunkSize, pData->iBlockSize); 368 pChunk = FX_Alloc2D(uint8_t, iChunkSize, pData->iBlockSize);
373 FXSYS_memset(pChunk, 0, iChunkSize * pData->iBlockSize); 369 FXSYS_memset(pChunk, 0, iChunkSize * pData->iBlockSize);
374 pData->ChunkBuffer.SetAtGrow(iChunk, pChunk); 370 pData->ChunkBuffer.SetAtGrow(iChunk, pChunk);
375 if (iChunkCount <= iChunk) { 371 if (iChunkCount <= iChunk) {
376 iChunkCount = iChunk + 1; 372 iChunkCount = iChunk + 1;
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
414 void CFX_BaseStack::Pop() { 410 void CFX_BaseStack::Pop() {
415 int32_t& iBlockCount = m_pData->m_iBlockCount; 411 int32_t& iBlockCount = m_pData->m_iBlockCount;
416 if (iBlockCount < 1) { 412 if (iBlockCount < 1) {
417 return; 413 return;
418 } 414 }
419 iBlockCount--; 415 iBlockCount--;
420 } 416 }
421 uint8_t* CFX_BaseStack::GetTopElement() const { 417 uint8_t* CFX_BaseStack::GetTopElement() const {
422 int32_t iSize = m_pData->m_iBlockCount; 418 int32_t iSize = m_pData->m_iBlockCount;
423 if (iSize < 1) { 419 if (iSize < 1) {
424 return NULL; 420 return nullptr;
425 } 421 }
426 return m_pData->GetAt(iSize - 1); 422 return m_pData->GetAt(iSize - 1);
427 } 423 }
428 int32_t CFX_BaseStack::GetSize() const { 424 int32_t CFX_BaseStack::GetSize() const {
429 return m_pData->m_iBlockCount; 425 return m_pData->m_iBlockCount;
430 } 426 }
431 uint8_t* CFX_BaseStack::GetAt(int32_t index) const { 427 uint8_t* CFX_BaseStack::GetAt(int32_t index) const {
432 return m_pData->GetAt(index); 428 return m_pData->GetAt(index);
433 } 429 }
434 void CFX_BaseStack::RemoveAll(FX_BOOL bLeaveMemory) { 430 void CFX_BaseStack::RemoveAll(FX_BOOL bLeaveMemory) {
435 m_pData->RemoveAll(bLeaveMemory); 431 m_pData->RemoveAll(bLeaveMemory);
436 } 432 }
OLDNEW
« no previous file with comments | « xfa/fgas/crt/fgas_utils.h ('k') | xfa/fgas/font/fgas_font.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698