diff options
author | Jan Holesovsky <kendy@collabora.com> | 2018-06-22 10:28:42 +0200 |
---|---|---|
committer | Ashod Nakashian <ashnakash@gmail.com> | 2018-06-22 14:44:08 +0200 |
commit | 3d2b4942214f586f22640e84f6d48fee475521fb (patch) | |
tree | e357dffd04f9f8cfb1d8c36f73e1cd0252fc97cc /vcl/source/filter/ipdf/pdfread.cxx | |
parent | 204353d270b8df4659a2f854efc636955e9e2ef9 (diff) |
pdfium: Avoid unnecessary copying + some warning fixes.
Change-Id: I114fa6b2d3dda86c55eb245d31ca3a1019197ae9
Reviewed-on: https://gerrit.libreoffice.org/56285
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
Diffstat (limited to 'vcl/source/filter/ipdf/pdfread.cxx')
-rw-r--r-- | vcl/source/filter/ipdf/pdfread.cxx | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/vcl/source/filter/ipdf/pdfread.cxx b/vcl/source/filter/ipdf/pdfread.cxx index e92b0c7b54a3..53008ea5e958 100644 --- a/vcl/source/filter/ipdf/pdfread.cxx +++ b/vcl/source/filter/ipdf/pdfread.cxx @@ -317,19 +317,17 @@ size_t ImportPDFUnloaded(const OUString& rURL, std::vector<std::pair<Graphic, Si return 0; // Copy into PdfData - uno::Sequence<sal_Int8> aPdfData; aMemoryStream.Seek(STREAM_SEEK_TO_END); - aPdfData = css::uno::Sequence<sal_Int8>(aMemoryStream.Tell()); + auto pPdfData = std::make_shared<css::uno::Sequence<sal_Int8>>(aMemoryStream.Tell()); aMemoryStream.Seek(STREAM_SEEK_TO_BEGIN); - aMemoryStream.ReadBytes(aPdfData.getArray(), aPdfData.getLength()); + aMemoryStream.ReadBytes(pPdfData->getArray(), pPdfData->getLength()); // Prepare the link with the PDF stream. - const size_t nGraphicContentSize = aPdfData.getLength(); + const size_t nGraphicContentSize = pPdfData->getLength(); std::unique_ptr<sal_uInt8[]> pGraphicContent(new sal_uInt8[nGraphicContentSize]); - memcpy(pGraphicContent.get(), aPdfData.get(), nGraphicContentSize); + memcpy(pGraphicContent.get(), pPdfData->get(), nGraphicContentSize); std::shared_ptr<GfxLink> pGfxLink(std::make_shared<GfxLink>( std::move(pGraphicContent), nGraphicContentSize, GfxLinkType::NativePdf)); - auto pPdfData = std::make_shared<uno::Sequence<sal_Int8>>(aPdfData); FPDF_LIBRARY_CONFIG aConfig; aConfig.version = 2; @@ -340,7 +338,7 @@ size_t ImportPDFUnloaded(const OUString& rURL, std::vector<std::pair<Graphic, Si // Load the buffer using pdfium. FPDF_DOCUMENT pPdfDocument - = FPDF_LoadMemDocument(aPdfData.getArray(), aPdfData.getLength(), /*password=*/nullptr); + = FPDF_LoadMemDocument(pPdfData->getArray(), pPdfData->getLength(), /*password=*/nullptr); if (!pPdfDocument) return 0; |