diff options
author | Michael Meeks <michael.meeks@collabora.com> | 2023-04-01 12:40:58 +0100 |
---|---|---|
committer | Michael Meeks <michael.meeks@collabora.com> | 2023-04-03 10:30:10 +0200 |
commit | 0bd949f4412249e5ecd63716efcc55d92d120da9 (patch) | |
tree | 1c4600acf34ddbc9f68fd47fcb8df0eefe2b15cc /vcl | |
parent | 56ae7d01505fdae421109cfc78449230ba589d79 (diff) |
BinaryDataContainer: pure re-factor to encapsulate stream copying.
Change-Id: Iab24e8d18bf7badbca672fbdbf455f78d08f41a0
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149905
Tested-by: Jenkins
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/inc/pdf/ExternalPDFStreams.hxx | 4 | ||||
-rw-r--r-- | vcl/source/filter/graphicfilter.cxx | 12 | ||||
-rw-r--r-- | vcl/source/gdi/TypeSerializer.cxx | 4 | ||||
-rw-r--r-- | vcl/source/gdi/impgraph.cxx | 5 | ||||
-rw-r--r-- | vcl/source/graphic/BinaryDataContainer.cxx | 11 |
5 files changed, 18 insertions, 18 deletions
diff --git a/vcl/inc/pdf/ExternalPDFStreams.hxx b/vcl/inc/pdf/ExternalPDFStreams.hxx index 45b15f7a74bc..e2ddd58b91a5 100644 --- a/vcl/inc/pdf/ExternalPDFStreams.hxx +++ b/vcl/inc/pdf/ExternalPDFStreams.hxx @@ -38,9 +38,7 @@ struct VCL_DLLPUBLIC ExternalPDFStream { if (!mpPDFDocument) { - SvMemoryStream aPDFStream; - aPDFStream.WriteBytes(maDataContainer.getData(), maDataContainer.getSize()); - aPDFStream.Seek(0); + SvMemoryStream aPDFStream = maDataContainer.getMemoryStream(); auto pPDFDocument = std::make_shared<filter::PDFDocument>(); if (!pPDFDocument->ReadWithPossibleFixup(aPDFStream)) { diff --git a/vcl/source/filter/graphicfilter.cxx b/vcl/source/filter/graphicfilter.cxx index dc7b47598d71..53071f6dea76 100644 --- a/vcl/source/filter/graphicfilter.cxx +++ b/vcl/source/filter/graphicfilter.cxx @@ -1632,9 +1632,7 @@ ErrCode GraphicFilter::ExportGraphic( const Graphic& rGraphic, std::u16string_vi && !rVectorGraphicDataPtr->getBinaryDataContainer().isEmpty() && !bIsEMF) { - auto & aDataContainer = rVectorGraphicDataPtr->getBinaryDataContainer(); - rTempStm->WriteBytes(aDataContainer.getData(), aDataContainer.getSize()); - + rVectorGraphicDataPtr->getBinaryDataContainer().writeToStream(*rTempStm); if (rTempStm->GetError()) { nStatus = ERRCODE_GRFILTER_IOERROR; @@ -1673,9 +1671,7 @@ ErrCode GraphicFilter::ExportGraphic( const Graphic& rGraphic, std::u16string_vi && rVectorGraphicDataPtr->getType() == VectorGraphicDataType::Emf && !rVectorGraphicDataPtr->getBinaryDataContainer().isEmpty()) { - auto & aDataContainer = rVectorGraphicDataPtr->getBinaryDataContainer(); - rTempStm->WriteBytes(aDataContainer.getData(), aDataContainer.getSize()); - + rVectorGraphicDataPtr->getBinaryDataContainer().writeToStream(*rTempStm); if (rTempStm->GetError()) { nStatus = ERRCODE_GRFILTER_IOERROR; @@ -1743,9 +1739,7 @@ ErrCode GraphicFilter::ExportGraphic( const Graphic& rGraphic, std::u16string_vi && rVectorGraphicDataPtr->getType() == VectorGraphicDataType::Svg && !rVectorGraphicDataPtr->getBinaryDataContainer().isEmpty()) { - auto & aDataContainer = rVectorGraphicDataPtr->getBinaryDataContainer(); - rTempStm->WriteBytes(aDataContainer.getData(), aDataContainer.getSize()); - + rVectorGraphicDataPtr->getBinaryDataContainer().writeToStream(*rTempStm); if( rTempStm->GetError() ) { nStatus = ERRCODE_GRFILTER_IOERROR; diff --git a/vcl/source/gdi/TypeSerializer.cxx b/vcl/source/gdi/TypeSerializer.cxx index 83f77bed1379..0882f97243ad 100644 --- a/vcl/source/gdi/TypeSerializer.cxx +++ b/vcl/source/gdi/TypeSerializer.cxx @@ -387,8 +387,8 @@ void TypeSerializer::writeGraphic(const Graphic& rGraphic) sal_uInt32 nSize = pVectorGraphicData->getBinaryDataContainer().getSize(); mrStream.WriteUInt32(nSize); - mrStream.WriteBytes(pVectorGraphicData->getBinaryDataContainer().getData(), - nSize); + pVectorGraphicData->getBinaryDataContainer().writeToStream(mrStream); + // For backwards compatibility, used to serialize path mrStream.WriteUniOrByteString(u"", mrStream.GetStreamCharSet()); } diff --git a/vcl/source/gdi/impgraph.cxx b/vcl/source/gdi/impgraph.cxx index 8e0dfdd5ad43..84df1765569c 100644 --- a/vcl/source/gdi/impgraph.cxx +++ b/vcl/source/gdi/impgraph.cxx @@ -1230,10 +1230,7 @@ bool ImpGraphic::swapOutGraphic(SvStream& rStream) } rStream.WriteUInt32(maVectorGraphicData->getBinaryDataContainer().getSize()); - - rStream.WriteBytes( - maVectorGraphicData->getBinaryDataContainer().getData(), - maVectorGraphicData->getBinaryDataContainer().getSize()); + maVectorGraphicData->getBinaryDataContainer().writeToStream(rStream); } else if (mpAnimation) { diff --git a/vcl/source/graphic/BinaryDataContainer.cxx b/vcl/source/graphic/BinaryDataContainer.cxx index 80e059137e63..0264fec09983 100644 --- a/vcl/source/graphic/BinaryDataContainer.cxx +++ b/vcl/source/graphic/BinaryDataContainer.cxx @@ -35,4 +35,15 @@ SvMemoryStream BinaryDataContainer::getMemoryStream() return SvMemoryStream(mpData ? mpData->data() : nullptr, getSize(), StreamMode::READ); } +std::size_t BinaryDataContainer::writeToStream(SvStream& rStream) const +{ + return rStream.WriteBytes(getData(), getSize()); +} + +size_t BinaryDataContainer::getSize() const { return mpData ? mpData->size() : 0; } + +bool BinaryDataContainer::isEmpty() const { return !mpData || mpData->empty(); } + +const sal_uInt8* BinaryDataContainer::getData() const { return mpData ? mpData->data() : nullptr; } + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |