poppler/FileSpec.cc | 12 +++++------- poppler/FileSpec.h | 2 +- 2 files changed, 6 insertions(+), 8 deletions(-)
New commits: commit d0ab87c1471349facd91caa65815670b1e3b7bb7 Author: Albert Astals Cid <[email protected]> Date: Mon Nov 12 18:30:56 2018 +0100 Save an incRef/decRef when creating EmbFile diff --git a/poppler/FileSpec.cc b/poppler/FileSpec.cc index ba555f2f..8a8b9e7e 100644 --- a/poppler/FileSpec.cc +++ b/poppler/FileSpec.cc @@ -29,7 +29,7 @@ #include "FileSpec.h" -EmbFile::EmbFile(const Object *efStream) +EmbFile::EmbFile(Object &&efStream) { m_size = -1; m_createDate = nullptr; @@ -37,11 +37,11 @@ EmbFile::EmbFile(const Object *efStream) m_checksum = nullptr; m_mimetype = nullptr; - m_objStr = efStream->copy(); + m_objStr = std::move(efStream); - if (efStream->isStream()) { + if (m_objStr.isStream()) { // dataDict corresponds to Table 3.41 in the PDF1.6 spec. - Dict *dataDict = efStream->streamGetDict(); + Dict *dataDict = m_objStr.streamGetDict(); // subtype is normally the mimetype Object subtypeName = dataDict->lookup("Subtype"); @@ -156,10 +156,8 @@ EmbFile *FileSpec::getEmbeddedFile() if (embFile) return embFile; - Object obj1; XRef *xref = fileSpec.getDict()->getXRef(); - obj1 = fileStream.fetch(xref); - embFile = new EmbFile(&obj1); + embFile = new EmbFile(fileStream.fetch(xref)); return embFile; } diff --git a/poppler/FileSpec.h b/poppler/FileSpec.h index 58c9e481..a4fcc725 100644 --- a/poppler/FileSpec.h +++ b/poppler/FileSpec.h @@ -20,7 +20,7 @@ class EmbFile { public: - EmbFile(const Object *efStream); + EmbFile(Object &&efStream); ~EmbFile(); EmbFile(const EmbFile &) = delete; _______________________________________________ poppler mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/poppler
