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

Side by Side Diff: core/fxcrt/include/fx_basic.h

Issue 1864813003: Remove CFX_SegmentedArray. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 4 years, 8 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 | « core/fxcrt/fx_basic_array.cpp ('k') | no next file » | 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 CORE_FXCRT_INCLUDE_FX_BASIC_H_ 7 #ifndef CORE_FXCRT_INCLUDE_FX_BASIC_H_
8 #define CORE_FXCRT_INCLUDE_FX_BASIC_H_ 8 #define CORE_FXCRT_INCLUDE_FX_BASIC_H_
9 9
10 #include <algorithm> 10 #include <algorithm>
(...skipping 473 matching lines...) Expand 10 before | Expand all | Expand 10 after
484 484
485 void RemoveAll() { 485 void RemoveAll() {
486 for (int i = 0; i < m_nSize; i++) { 486 for (int i = 0; i < m_nSize; i++) {
487 ((ObjectClass*)GetDataPtr(i))->~ObjectClass(); 487 ((ObjectClass*)GetDataPtr(i))->~ObjectClass();
488 } 488 }
489 CFX_BasicArray::SetSize(0); 489 CFX_BasicArray::SetSize(0);
490 } 490 }
491 }; 491 };
492 typedef CFX_ObjectArray<CFX_ByteString> CFX_ByteStringArray; 492 typedef CFX_ObjectArray<CFX_ByteString> CFX_ByteStringArray;
493 typedef CFX_ObjectArray<CFX_WideString> CFX_WideStringArray; 493 typedef CFX_ObjectArray<CFX_WideString> CFX_WideStringArray;
494 class CFX_BaseSegmentedArray {
495 public:
496 CFX_BaseSegmentedArray(int unit_size = 1,
497 int segment_units = 512,
498 int index_size = 8);
499
500 ~CFX_BaseSegmentedArray();
501
502 void SetUnitSize(int unit_size, int segment_units, int index_size = 8);
503
504 void* Add();
505
506 void* GetAt(int index) const;
507
508 void RemoveAll();
509
510 void Delete(int index, int count = 1);
511
512 int GetSize() const { return m_DataSize; }
513
514 int GetSegmentSize() const { return m_SegmentSize; }
515
516 int GetUnitSize() const { return m_UnitSize; }
517
518 void* Iterate(FX_BOOL (*callback)(void* param, void* pData),
519 void* param) const;
520
521 private:
522 int m_UnitSize;
523
524 short m_SegmentSize;
525
526 uint8_t m_IndexSize;
527
528 uint8_t m_IndexDepth;
529
530 int m_DataSize;
531
532 void* m_pIndex;
533 void** GetIndex(int seg_index) const;
534 void* IterateIndex(int level,
535 int& start,
536 void** pIndex,
537 FX_BOOL (*callback)(void* param, void* pData),
538 void* param) const;
539 void* IterateSegment(const uint8_t* pSegment,
540 int count,
541 FX_BOOL (*callback)(void* param, void* pData),
542 void* param) const;
543 };
544 template <class ElementType>
545 class CFX_SegmentedArray : public CFX_BaseSegmentedArray {
546 public:
547 CFX_SegmentedArray(int segment_units, int index_size = 8)
548 : CFX_BaseSegmentedArray(sizeof(ElementType), segment_units, index_size) {
549 }
550
551 void Add(ElementType data) {
552 *(ElementType*)CFX_BaseSegmentedArray::Add() = data;
553 }
554
555 ElementType& operator[](int index) {
556 return *(ElementType*)CFX_BaseSegmentedArray::GetAt(index);
557 }
558 };
559 #endif // PDF_ENABLE_XFA 494 #endif // PDF_ENABLE_XFA
560 495
561 template <class DataType, int FixedSize> 496 template <class DataType, int FixedSize>
562 class CFX_FixedBufGrow { 497 class CFX_FixedBufGrow {
563 public: 498 public:
564 explicit CFX_FixedBufGrow(int data_size) { 499 explicit CFX_FixedBufGrow(int data_size) {
565 if (data_size > FixedSize) { 500 if (data_size > FixedSize) {
566 m_pGrowData.reset(FX_Alloc(DataType, data_size)); 501 m_pGrowData.reset(FX_Alloc(DataType, data_size));
567 return; 502 return;
568 } 503 }
(...skipping 554 matching lines...) Expand 10 before | Expand all | Expand 10 after
1123 FX_FLOAT c; 1058 FX_FLOAT c;
1124 FX_FLOAT d; 1059 FX_FLOAT d;
1125 FX_FLOAT e; 1060 FX_FLOAT e;
1126 FX_FLOAT f; 1061 FX_FLOAT f;
1127 FX_FLOAT g; 1062 FX_FLOAT g;
1128 FX_FLOAT h; 1063 FX_FLOAT h;
1129 FX_FLOAT i; 1064 FX_FLOAT i;
1130 }; 1065 };
1131 1066
1132 #endif // CORE_FXCRT_INCLUDE_FX_BASIC_H_ 1067 #endif // CORE_FXCRT_INCLUDE_FX_BASIC_H_
OLDNEW
« no previous file with comments | « core/fxcrt/fx_basic_array.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698