Commit 4badc78aeaf977a875cc931ea99b0c2a5803d40c
1 parent
0d08f65c
Remove methods ObjTable::initialize
Showing
4 changed files
with
31 additions
and
15 deletions
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<Test> | @@ -10,7 +10,7 @@ class Table: public ObjTable<Test> | ||
| 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<Test> | @@ -20,9 +20,19 @@ class Table: public ObjTable<Test> | ||
| 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 |