mirror of
https://github.com/qpdf/qpdf.git
synced 2024-05-31 09:20:52 +00:00
Remove SparseOHArray::at, setAt and append
This commit is contained in:
parent
1c85e7ece4
commit
e186da1721
|
@ -193,7 +193,7 @@ QPDF_Array::setAt(int at, QPDFObjectHandle const& oh)
|
|||
}
|
||||
checkOwnership(oh);
|
||||
if (sparse) {
|
||||
sp_elements.setAt(at, oh);
|
||||
sp_elements.elements[at] = oh.getObj();
|
||||
} else {
|
||||
elements[size_t(at)] = oh.getObj();
|
||||
}
|
||||
|
@ -206,7 +206,7 @@ QPDF_Array::setFromVector(std::vector<QPDFObjectHandle> const& v)
|
|||
if (sparse) {
|
||||
sp_elements = SparseOHArray();
|
||||
for (auto const& iter: v) {
|
||||
sp_elements.append(iter);
|
||||
sp_elements.elements[sp_elements.n_elements++] = iter.getObj();
|
||||
}
|
||||
} else {
|
||||
elements.resize(0);
|
||||
|
@ -224,10 +224,9 @@ QPDF_Array::setFromVector(std::vector<std::shared_ptr<QPDFObject>>&& v)
|
|||
for (auto&& item: v) {
|
||||
if (item->getTypeCode() != ::ot_null ||
|
||||
item->getObjGen().isIndirect()) {
|
||||
sp_elements.append(std::move(item));
|
||||
} else {
|
||||
++sp_elements.n_elements;
|
||||
sp_elements.elements[sp_elements.n_elements] = std::move(item);
|
||||
}
|
||||
++sp_elements.n_elements;
|
||||
}
|
||||
} else {
|
||||
elements = std::move(v);
|
||||
|
|
|
@ -1,27 +1,5 @@
|
|||
#include <qpdf/SparseOHArray.hh>
|
||||
|
||||
#include <stdexcept>
|
||||
|
||||
static const QPDFObjectHandle null_oh = QPDFObjectHandle::newNull();
|
||||
|
||||
QPDFObjectHandle
|
||||
SparseOHArray::at(int idx) const
|
||||
{
|
||||
auto const& iter = elements.find(idx);
|
||||
return iter == elements.end() ? null_oh : (*iter).second;
|
||||
}
|
||||
|
||||
void
|
||||
SparseOHArray::remove_last()
|
||||
{
|
||||
if (this->n_elements == 0) {
|
||||
throw std::logic_error("INTERNAL ERROR: attempt to remove"
|
||||
" last item from empty SparseOHArray");
|
||||
}
|
||||
--this->n_elements;
|
||||
this->elements.erase(this->n_elements);
|
||||
}
|
||||
|
||||
void
|
||||
SparseOHArray::disconnect()
|
||||
{
|
||||
|
@ -42,15 +20,3 @@ SparseOHArray::copy()
|
|||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
SparseOHArray::const_iterator
|
||||
SparseOHArray::begin() const
|
||||
{
|
||||
return this->elements.begin();
|
||||
}
|
||||
|
||||
SparseOHArray::const_iterator
|
||||
SparseOHArray::end() const
|
||||
{
|
||||
return this->elements.end();
|
||||
}
|
||||
|
|
|
@ -16,31 +16,9 @@ class SparseOHArray
|
|||
{
|
||||
return n_elements;
|
||||
}
|
||||
void
|
||||
append(QPDFObjectHandle oh)
|
||||
{
|
||||
elements[n_elements++] = oh.getObj();
|
||||
}
|
||||
void
|
||||
append(std::shared_ptr<QPDFObject>&& obj)
|
||||
{
|
||||
elements[n_elements++] = std::move(obj);
|
||||
}
|
||||
QPDFObjectHandle at(int idx) const;
|
||||
void remove_last();
|
||||
void
|
||||
setAt(int idx, QPDFObjectHandle oh)
|
||||
{
|
||||
elements[idx] = oh.getObj();
|
||||
}
|
||||
SparseOHArray copy();
|
||||
void disconnect();
|
||||
|
||||
typedef std::map<int, std::shared_ptr<QPDFObject>>::const_iterator
|
||||
const_iterator;
|
||||
const_iterator begin() const;
|
||||
const_iterator end() const;
|
||||
|
||||
private:
|
||||
friend class QPDF_Array;
|
||||
std::map<int, std::shared_ptr<QPDFObject>> elements;
|
||||
|
|
Loading…
Reference in New Issue
Block a user