vcl/inc/filter/MetReader.hxx | 5 +++-- vcl/inc/filter/PcxReader.hxx | 5 +++-- vcl/qa/cppunit/graphicfilter/filters-met-test.cxx | 6 +++--- vcl/qa/cppunit/graphicfilter/filters-pcx-test.cxx | 6 +++--- vcl/source/filter/graphicfilter.cxx | 10 ++++++++-- vcl/source/filter/imet/ios2met.cxx | 16 ++++++++-------- vcl/source/filter/ipcx/ipcx.cxx | 12 ++++++------ vcl/workben/fftester.cxx | 8 ++++---- vcl/workben/metfuzzer.cxx | 4 ++-- vcl/workben/pcxfuzzer.cxx | 4 ++-- 10 files changed, 42 insertions(+), 34 deletions(-)
New commits: commit f4ed5e6f627c31bfd675a2a8fe642aa1c9251d5f Author: Tomaž Vajngerl <[email protected]> AuthorDate: Fri May 9 14:13:57 2025 +0900 Commit: Tomaž Vajngerl <[email protected]> CommitDate: Fri May 9 09:35:52 2025 +0200 vcl: convert PCX to use ImportOutput Change-Id: I979091f0d7d6c6c5bf31209d3dc64606e230ba19 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185077 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <[email protected]> diff --git a/vcl/inc/filter/PcxReader.hxx b/vcl/inc/filter/PcxReader.hxx index 73e182c62895..4ecef879c07f 100644 --- a/vcl/inc/filter/PcxReader.hxx +++ b/vcl/inc/filter/PcxReader.hxx @@ -19,8 +19,9 @@ #pragma once -#include <vcl/graph.hxx> +class SvStream; +class ImportOutput; -VCL_DLLPUBLIC bool ImportPcxGraphic(SvStream& rStream, Graphic& rGraphic); +VCL_DLLPUBLIC bool ImportPcxGraphic(SvStream& rStream, ImportOutput& rImportOutput); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/qa/cppunit/graphicfilter/filters-pcx-test.cxx b/vcl/qa/cppunit/graphicfilter/filters-pcx-test.cxx index 5297631517da..901ba1839ed6 100644 --- a/vcl/qa/cppunit/graphicfilter/filters-pcx-test.cxx +++ b/vcl/qa/cppunit/graphicfilter/filters-pcx-test.cxx @@ -11,7 +11,7 @@ #include <test/bootstrapfixture.hxx> #include <vcl/FilterConfigItem.hxx> #include <tools/stream.hxx> -#include <vcl/graph.hxx> +#include <vcl/filter/ImportOutput.hxx> #include <filter/PcxReader.hxx> using namespace css; @@ -44,8 +44,8 @@ bool PcxFilterTest::load(const OUString &, SfxFilterFlags, SotClipboardFormatId, unsigned int) { SvFileStream aFileStream(rURL, StreamMode::READ); - Graphic aGraphic; - return ImportPcxGraphic(aFileStream, aGraphic); + ImportOutput aImportOutput; + return ImportPcxGraphic(aFileStream, aImportOutput); } void PcxFilterTest::testCVEs() diff --git a/vcl/source/filter/graphicfilter.cxx b/vcl/source/filter/graphicfilter.cxx index dde6a0ffa75f..3e512777198c 100644 --- a/vcl/source/filter/graphicfilter.cxx +++ b/vcl/source/filter/graphicfilter.cxx @@ -1234,8 +1234,12 @@ ErrCode GraphicFilter::readRAS(SvStream & rStream, Graphic & rGraphic) ErrCode GraphicFilter::readPCX(SvStream & rStream, Graphic & rGraphic) { - if (ImportPcxGraphic(rStream, rGraphic)) + ImportOutput aImportOutput; + if (ImportPcxGraphic(rStream, aImportOutput)) + { + rGraphic = Graphic(*aImportOutput.moBitmap); return ERRCODE_NONE; + } else return ERRCODE_GRFILTER_FILTERERROR; } diff --git a/vcl/source/filter/ipcx/ipcx.cxx b/vcl/source/filter/ipcx/ipcx.cxx index b1162d5ec409..202c134bac28 100644 --- a/vcl/source/filter/ipcx/ipcx.cxx +++ b/vcl/source/filter/ipcx/ipcx.cxx @@ -19,7 +19,7 @@ #include <memory> -#include <vcl/graph.hxx> +#include <vcl/filter/ImportOutput.hxx> #include <vcl/BitmapTools.hxx> #include <tools/stream.hxx> #include <filter/PcxReader.hxx> @@ -58,7 +58,7 @@ private: public: explicit PCXReader(SvStream &rStream); - bool ReadPCX(Graphic & rGraphic ); + bool ReadPCX(ImportOutput& rImportOutput); // Reads a PCX file from the stream and fills the GDIMetaFile }; @@ -83,7 +83,7 @@ PCXReader::PCXReader(SvStream &rStream) { } -bool PCXReader::ReadPCX(Graphic & rGraphic) +bool PCXReader::ReadPCX(ImportOutput& rImportOutput) { if ( m_rPCX.GetError() ) return false; @@ -143,7 +143,7 @@ bool PCXReader::ReadPCX(Graphic & rGraphic) if ( bStatus ) { - rGraphic = vcl::bitmap::CreateFromData(std::move(*mpBitmap)); + rImportOutput.moBitmap = vcl::bitmap::CreateFromData(std::move(*mpBitmap)); return true; } } @@ -399,10 +399,10 @@ void PCXReader::ImplReadPalette( unsigned int nCol ) //================== GraphicImport - the exported function ================ -bool ImportPcxGraphic(SvStream & rStream, Graphic & rGraphic) +bool ImportPcxGraphic(SvStream& rStream, ImportOutput& rImportOutput) { PCXReader aPCXReader(rStream); - bool bRetValue = aPCXReader.ReadPCX(rGraphic); + bool bRetValue = aPCXReader.ReadPCX(rImportOutput); if ( !bRetValue ) rStream.SetError( SVSTREAM_FILEFORMAT_ERROR ); return bRetValue; diff --git a/vcl/workben/fftester.cxx b/vcl/workben/fftester.cxx index 26ad84ca6e22..b78ea9ec9b60 100644 --- a/vcl/workben/fftester.cxx +++ b/vcl/workben/fftester.cxx @@ -226,9 +226,9 @@ SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv) } else if (strcmp(argv[2], "pcx") == 0) { - Graphic aGraphic; + ImportOutput aImportOutput; SvFileStream aFileStream(out, StreamMode::READ); - ret = static_cast<int>(ImportPcxGraphic(aFileStream, aGraphic)); + ret = static_cast<int>(ImportPcxGraphic(aFileStream, aImportOutput)); } else if (strcmp(argv[2], "ras") == 0) { diff --git a/vcl/workben/pcxfuzzer.cxx b/vcl/workben/pcxfuzzer.cxx index 2785cf4c4eec..83840b01d16a 100644 --- a/vcl/workben/pcxfuzzer.cxx +++ b/vcl/workben/pcxfuzzer.cxx @@ -49,8 +49,8 @@ extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv) extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ); - Graphic aGraphic; - (void)ImportPcxGraphic(aStream, aGraphic); + ImportOutput aImportOutput; + (void)ImportPcxGraphic(aStream, aImportOutput); return 0; } commit 1251d5314a0ab9e511585768132da67edf935a0a Author: Tomaž Vajngerl <[email protected]> AuthorDate: Fri May 9 14:08:22 2025 +0900 Commit: Tomaž Vajngerl <[email protected]> CommitDate: Fri May 9 09:35:40 2025 +0200 vcl: convert MET to use ImportOutput Change-Id: I90296dd29afb46dd731db96c25928e22fa42712a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185076 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <[email protected]> diff --git a/vcl/inc/filter/MetReader.hxx b/vcl/inc/filter/MetReader.hxx index 6855cf7a3fc9..2fcfabad6761 100644 --- a/vcl/inc/filter/MetReader.hxx +++ b/vcl/inc/filter/MetReader.hxx @@ -19,8 +19,9 @@ #pragma once -#include <vcl/graph.hxx> +class SvStream; +class ImportOutput; -VCL_DLLPUBLIC bool ImportMetGraphic(SvStream& rStream, Graphic& rGraphic); +VCL_DLLPUBLIC bool ImportMetGraphic(SvStream& rStream, ImportOutput& rImportOutput); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/qa/cppunit/graphicfilter/filters-met-test.cxx b/vcl/qa/cppunit/graphicfilter/filters-met-test.cxx index ff00920ed326..f4336c659c64 100644 --- a/vcl/qa/cppunit/graphicfilter/filters-met-test.cxx +++ b/vcl/qa/cppunit/graphicfilter/filters-met-test.cxx @@ -11,7 +11,7 @@ #include <test/bootstrapfixture.hxx> #include <vcl/FilterConfigItem.hxx> #include <tools/stream.hxx> -#include <vcl/graph.hxx> +#include <vcl/filter/ImportOutput.hxx> #include <filter/MetReader.hxx> using namespace css; @@ -44,8 +44,8 @@ bool MetFilterTest::load(const OUString &, SfxFilterFlags, SotClipboardFormatId, unsigned int) { SvFileStream aFileStream(rURL, StreamMode::READ); - Graphic aGraphic; - return ImportMetGraphic(aFileStream, aGraphic); + ImportOutput aImportOutput; + return ImportMetGraphic(aFileStream, aImportOutput); } void MetFilterTest::testCVEs() diff --git a/vcl/source/filter/graphicfilter.cxx b/vcl/source/filter/graphicfilter.cxx index 3a8267b7fa29..dde6a0ffa75f 100644 --- a/vcl/source/filter/graphicfilter.cxx +++ b/vcl/source/filter/graphicfilter.cxx @@ -1213,8 +1213,10 @@ ErrCode GraphicFilter::readPICT(SvStream & rStream, Graphic & rGraphic, GfxLinkT ErrCode GraphicFilter::readMET(SvStream & rStream, Graphic & rGraphic, GfxLinkType & rLinkType) { - if (ImportMetGraphic(rStream, rGraphic)) + ImportOutput aImportOutput; + if (ImportMetGraphic(rStream, aImportOutput)) { + rGraphic = Graphic(*aImportOutput.moGDIMetaFile); rLinkType = GfxLinkType::NativeMet; return ERRCODE_NONE; } diff --git a/vcl/source/filter/imet/ios2met.cxx b/vcl/source/filter/imet/ios2met.cxx index d92174731b65..e0c53089348f 100644 --- a/vcl/source/filter/imet/ios2met.cxx +++ b/vcl/source/filter/imet/ios2met.cxx @@ -23,7 +23,7 @@ #include <tools/fract.hxx> #include <tools/stream.hxx> #include <sal/log.hxx> -#include <vcl/graph.hxx> +#include <vcl/filter/ImportOutput.hxx> #include <vcl/dibtools.hxx> #include <vcl/virdev.hxx> #include <vcl/lineinfo.hxx> @@ -2857,19 +2857,19 @@ void OS2METReader::ReadOS2MET( SvStream & rStreamOS2MET, GDIMetaFile & rGDIMetaF //================== GraphicImport - the exported function ================ -bool ImportMetGraphic(SvStream & rStream, Graphic & rGraphic) +bool ImportMetGraphic(SvStream& rStream, ImportOutput& rImportOutput) { - OS2METReader aOS2METReader; - GDIMetaFile aMTF; - bool bRet = false; + OS2METReader aOS2METReader; + GDIMetaFile aMTF; + bool bRet = false; try { - aOS2METReader.ReadOS2MET( rStream, aMTF ); + aOS2METReader.ReadOS2MET(rStream, aMTF); - if ( !rStream.GetError() ) + if (!rStream.GetError()) { - rGraphic=Graphic( aMTF ); + rImportOutput.moGDIMetaFile = aMTF; bRet = true; } } diff --git a/vcl/workben/fftester.cxx b/vcl/workben/fftester.cxx index faaf91f465a0..26ad84ca6e22 100644 --- a/vcl/workben/fftester.cxx +++ b/vcl/workben/fftester.cxx @@ -196,9 +196,9 @@ SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv) } else if (strcmp(argv[2], "met") == 0) { - Graphic aGraphic; + ImportOutput aImportOutput; SvFileStream aFileStream(out, StreamMode::READ); - ret = static_cast<int>(ImportMetGraphic(aFileStream, aGraphic)); + ret = static_cast<int>(ImportMetGraphic(aFileStream, aImportOutput)); } else if ((strcmp(argv[2], "pbm") == 0) || strcmp(argv[2], "ppm") == 0) { diff --git a/vcl/workben/metfuzzer.cxx b/vcl/workben/metfuzzer.cxx index 1d594d7b61f4..9a9d3cc8567e 100644 --- a/vcl/workben/metfuzzer.cxx +++ b/vcl/workben/metfuzzer.cxx @@ -62,8 +62,8 @@ extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv) extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ); - Graphic aGraphic; - (void)ImportMetGraphic(aStream, aGraphic); + ImportOutput aImportOutput; + (void)ImportMetGraphic(aStream, aImportOutput); return 0; }
