Optimization: merging identical objects

This commit is contained in:
Jakub Melka
2020-06-03 19:41:42 +02:00
parent 93ecdd0bfc
commit 6a986178ff
4 changed files with 83 additions and 4 deletions

View File

@ -159,7 +159,17 @@ void PDFReplaceReferencesVisitor::visitStream(const PDFStream* stream)
void PDFReplaceReferencesVisitor::visitReference(const PDFObjectReference reference)
{
m_objectStack.push_back(PDFObject::createReference(m_replacements.at(reference)));
auto it = m_replacements.find(reference);
if (it != m_replacements.cend())
{
// Replace the reference
m_objectStack.push_back(PDFObject::createReference(it->second));
}
else
{
// Preserve old reference
m_objectStack.push_back(PDFObject::createReference(reference));
}
}
PDFObject PDFReplaceReferencesVisitor::getObject()