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

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

Issue 2031873003: Get rid of NULLs in xfa/ (Closed) Base URL: https://pdfium.googlesource.com/pdfium@nullptr_fpdfsdk
Patch Set: 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_system.cpp ('k') | xfa/fgas/crt/fgas_utils.cpp » ('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 #ifndef XFA_FGAS_CRT_FGAS_UTILS_H_ 7 #ifndef XFA_FGAS_CRT_FGAS_UTILS_H_
8 #define XFA_FGAS_CRT_FGAS_UTILS_H_ 8 #define XFA_FGAS_CRT_FGAS_UTILS_H_
9 9
10 #include "core/fxcrt/include/fx_coordinates.h" 10 #include "core/fxcrt/include/fx_coordinates.h"
(...skipping 356 matching lines...) Expand 10 before | Expand all | Expand 10 after
367 void* m_pData; 367 void* m_pData;
368 }; 368 };
369 369
370 template <class baseType> 370 template <class baseType>
371 class CFX_DiscreteArrayTemplate : public CFX_BaseDiscreteArray { 371 class CFX_DiscreteArrayTemplate : public CFX_BaseDiscreteArray {
372 public: 372 public:
373 CFX_DiscreteArrayTemplate(int32_t iChunkSize = 100) 373 CFX_DiscreteArrayTemplate(int32_t iChunkSize = 100)
374 : CFX_BaseDiscreteArray(iChunkSize, sizeof(baseType)) {} 374 : CFX_BaseDiscreteArray(iChunkSize, sizeof(baseType)) {}
375 baseType& GetAt(int32_t index, const baseType& defValue) const { 375 baseType& GetAt(int32_t index, const baseType& defValue) const {
376 baseType* p = (baseType*)CFX_BaseDiscreteArray::GetAt(index); 376 baseType* p = (baseType*)CFX_BaseDiscreteArray::GetAt(index);
377 return p == NULL ? (baseType&)defValue : *p; 377 return p ? *p : (baseType&)defValue;
378 } 378 }
379 baseType* GetPtrAt(int32_t index) const { 379 baseType* GetPtrAt(int32_t index) const {
380 return (baseType*)CFX_BaseDiscreteArray::GetAt(index); 380 return (baseType*)CFX_BaseDiscreteArray::GetAt(index);
381 } 381 }
382 void SetAtGrow(int32_t index, const baseType& element) { 382 void SetAtGrow(int32_t index, const baseType& element) {
383 *(baseType*)CFX_BaseDiscreteArray::AddSpaceTo(index) = element; 383 *(baseType*)CFX_BaseDiscreteArray::AddSpaceTo(index) = element;
384 } 384 }
385 void RemoveAll() { CFX_BaseDiscreteArray::RemoveAll(); } 385 void RemoveAll() { CFX_BaseDiscreteArray::RemoveAll(); }
386 }; 386 };
387 typedef CFX_DiscreteArrayTemplate<void*> CFX_PtrDiscreteArray; 387 typedef CFX_DiscreteArrayTemplate<void*> CFX_PtrDiscreteArray;
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
435 : CFX_BaseStack(iChunkSize, sizeof(baseType)) {} 435 : CFX_BaseStack(iChunkSize, sizeof(baseType)) {}
436 ~CFX_ObjectStackTemplate() { RemoveAll(); } 436 ~CFX_ObjectStackTemplate() { RemoveAll(); }
437 int32_t Push(const baseType& element) { 437 int32_t Push(const baseType& element) {
438 int32_t index = CFX_BaseStack::GetSize(); 438 int32_t index = CFX_BaseStack::GetSize();
439 baseType* p = (baseType*)CFX_BaseStack::Push(); 439 baseType* p = (baseType*)CFX_BaseStack::Push();
440 new ((void*)p) baseType(element); 440 new ((void*)p) baseType(element);
441 return index; 441 return index;
442 } 442 }
443 void Pop() { 443 void Pop() {
444 baseType* p = (baseType*)CFX_BaseStack::GetTopElement(); 444 baseType* p = (baseType*)CFX_BaseStack::GetTopElement();
445 if (p != NULL) { 445 if (p) {
446 p->~baseType(); 446 p->~baseType();
447 } 447 }
448 CFX_BaseStack::Pop(); 448 CFX_BaseStack::Pop();
449 } 449 }
450 baseType* GetTopElement() const { 450 baseType* GetTopElement() const {
451 return (baseType*)CFX_BaseStack::GetTopElement(); 451 return (baseType*)CFX_BaseStack::GetTopElement();
452 } 452 }
453 int32_t GetSize() const { return CFX_BaseStack::GetSize(); } 453 int32_t GetSize() const { return CFX_BaseStack::GetSize(); }
454 baseType* GetAt(int32_t index) const { 454 baseType* GetAt(int32_t index) const {
455 return (baseType*)CFX_BaseStack::GetAt(index); 455 return (baseType*)CFX_BaseStack::GetAt(index);
(...skipping 22 matching lines...) Expand all
478 } 478 }
479 RemoveAll(TRUE); 479 RemoveAll(TRUE);
480 for (int32_t i = iStart; i < iEnd; i++) { 480 for (int32_t i = iStart; i < iEnd; i++) {
481 Push(*src.GetAt(i)); 481 Push(*src.GetAt(i));
482 } 482 }
483 return CFX_BaseStack::GetSize(); 483 return CFX_BaseStack::GetSize();
484 } 484 }
485 }; 485 };
486 486
487 #endif // XFA_FGAS_CRT_FGAS_UTILS_H_ 487 #endif // XFA_FGAS_CRT_FGAS_UTILS_H_
OLDNEW
« no previous file with comments | « xfa/fgas/crt/fgas_system.cpp ('k') | xfa/fgas/crt/fgas_utils.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698