Commit 4badc78aeaf977a875cc931ea99b0c2a5803d40c

Authored by m-holger
1 parent 0d08f65c

Remove methods ObjTable::initialize

libqpdf/QPDFWriter.cc
@@ -2077,8 +2077,8 @@ void @@ -2077,8 +2077,8 @@ void
2077 QPDFWriter::initializeTables(size_t extra) 2077 QPDFWriter::initializeTables(size_t extra)
2078 { 2078 {
2079 auto size = QIntC::to_size(QPDF::Writer::tableSize(m->pdf) + 100) + extra; 2079 auto size = QIntC::to_size(QPDF::Writer::tableSize(m->pdf) + 100) + extra;
2080 - m->obj.initialize(size);  
2081 - m->new_obj.initialize(size); 2080 + m->obj.resize(size);
  2081 + m->new_obj.resize(size);
2082 } 2082 }
2083 2083
2084 void 2084 void
libqpdf/qpdf/ObjTable.hh
@@ -100,15 +100,6 @@ class ObjTable: public std::vector<T> @@ -100,15 +100,6 @@ class ObjTable: public std::vector<T>
100 } 100 }
101 101
102 void 102 void
103 - initialize(size_t idx)  
104 - {  
105 - if (std::vector<T>::size() > 0 || !sparse_elements.empty()) {  
106 - throw ::std::logic_error("ObjTable accessed before initialization");  
107 - }  
108 - resize(++idx);  
109 - }  
110 -  
111 - void  
112 resize(size_t a_size) 103 resize(size_t a_size)
113 { 104 {
114 std::vector<T>::resize(a_size); 105 std::vector<T>::resize(a_size);
libtests/obj_table.cc
@@ -10,7 +10,7 @@ class Table: public ObjTable&lt;Test&gt; @@ -10,7 +10,7 @@ class Table: public ObjTable&lt;Test&gt;
10 public: 10 public:
11 Table() 11 Table()
12 { 12 {
13 - initialize(5); 13 + resize(5);
14 } 14 }
15 15
16 void 16 void
@@ -20,9 +20,19 @@ class Table: public ObjTable&lt;Test&gt; @@ -20,9 +20,19 @@ class Table: public ObjTable&lt;Test&gt;
20 (*this)[i].value = 2 * i; 20 (*this)[i].value = 2 * i;
21 (*this)[1000 + i].value = 2 * (1000 + i); 21 (*this)[1000 + i].value = 2 * (1000 + i);
22 } 22 }
  23 + for (int i: {50, 60, 70, 98, 99, 100, 101, 150, 198, 199, 200, 201}) {
  24 + (*this)[i].value = 2 * i;
  25 + }
  26 + resize(100);
  27 + for (int i: {1, 99, 100, 105, 110, 120, 220}) {
  28 + (*this)[i].value = 3 * i;
  29 + }
  30 + resize(200);
23 31
24 forEach([](auto i, auto const& item) -> void { 32 forEach([](auto i, auto const& item) -> void {
25 - std::cout << std::to_string(i) << " : " << std::to_string(item.value) << "\n"; 33 + if (item.value) {
  34 + std::cout << std::to_string(i) << " : " << std::to_string(item.value) << "\n";
  35 + }
26 }); 36 });
27 37
28 std::cout << "2000 : " << std::to_string((*this)[2000].value) << "\n"; 38 std::cout << "2000 : " << std::to_string((*this)[2000].value) << "\n";
libtests/qtest/obj_table/obj_table.out
1 -0 : 0  
2 -1 : 2 1 +1 : 3
3 2 : 4 2 2 : 4
4 3 : 6 3 3 : 6
5 4 : 8 4 4 : 8
@@ -8,6 +7,22 @@ @@ -8,6 +7,22 @@
8 7 : 14 7 7 : 14
9 8 : 16 8 8 : 16
10 9 : 18 9 9 : 18
  10 +50 : 100
  11 +60 : 120
  12 +70 : 140
  13 +98 : 196
  14 +99 : 297
  15 +100 : 300
  16 +101 : 202
  17 +105 : 315
  18 +110 : 330
  19 +120 : 360
  20 +150 : 300
  21 +198 : 396
  22 +199 : 398
  23 +200 : 400
  24 +201 : 402
  25 +220 : 660
11 1000 : 2000 26 1000 : 2000
12 1001 : 2002 27 1001 : 2002
13 1002 : 2004 28 1002 : 2004