desktop/qa/desktop_app/test_desktop_app.cxx | 5 ++--- desktop/source/app/cmdlineargs.cxx | 21 ++++++++++----------- desktop/source/app/cmdlineargs.hxx | 2 +- desktop/source/app/officeipcthread.cxx | 11 +++++------ 4 files changed, 18 insertions(+), 21 deletions(-)
New commits: commit 59fb18bf279446ba8d26faf7bfb03e375e0aac62 Author: Caolán McNamara <caolan.mcnam...@collabora.com> AuthorDate: Wed May 1 14:38:24 2024 +0100 Commit: Caolán McNamara <caolan.mcnam...@collabora.com> CommitDate: Wed May 1 17:11:10 2024 +0200 next is never passed a null pointer, use a reference Change-Id: I6d57e6a7f746a05017c6f93ef434a234716259c2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166965 Reviewed-by: Caolán McNamara <caolan.mcnam...@collabora.com> Tested-by: Jenkins diff --git a/desktop/qa/desktop_app/test_desktop_app.cxx b/desktop/qa/desktop_app/test_desktop_app.cxx index 0e86368e6378..2c9c7ba7121b 100644 --- a/desktop/qa/desktop_app/test_desktop_app.cxx +++ b/desktop/qa/desktop_app/test_desktop_app.cxx @@ -48,10 +48,9 @@ public: explicit TestSupplier(const std::initializer_list<OUString>& args) : m_args(args) {} virtual std::optional< OUString > getCwdUrl() override { return std::optional< OUString >(); } - virtual bool next(OUString * argument) override { - CPPUNIT_ASSERT(argument != nullptr); + virtual bool next(OUString& argument) override { if (m_index < m_args.size()) { - *argument = m_args[m_index++]; + argument = m_args[m_index++]; return true; } else { diff --git a/desktop/source/app/cmdlineargs.cxx b/desktop/source/app/cmdlineargs.cxx index f96814e8e7ff..ba5a3da5a6c3 100644 --- a/desktop/source/app/cmdlineargs.cxx +++ b/desktop/source/app/cmdlineargs.cxx @@ -83,10 +83,9 @@ public: virtual std::optional< OUString > getCwdUrl() override { return m_cwdUrl; } - virtual bool next(OUString * argument) override { - OSL_ASSERT(argument != nullptr); + virtual bool next(OUString& argument) override { if (m_index < m_count) { - rtl_getAppCommandArg(m_index++, &argument->pData); + rtl_getAppCommandArg(m_index++, &argument.pData); return true; } else { return false; @@ -285,7 +284,7 @@ void CommandLineArgs::ParseCommandLine_Impl( Supplier& supplier ) for (;;) { OUString aArg; - if ( !supplier.next( &aArg ) ) + if ( !supplier.next(aArg) ) { break; } @@ -410,7 +409,7 @@ void CommandLineArgs::ParseCommandLine_Impl( Supplier& supplier ) // We specifically need to consume the following 2 arguments // for --protector - if ((!supplier.next(&aArg) || !supplier.next(&aArg)) && m_unknown.isEmpty()) + if ((!supplier.next(aArg) || !supplier.next(aArg)) && m_unknown.isEmpty()) m_unknown = "--protector must be followed by two arguments"; } else if ( oArg == "version" ) @@ -523,7 +522,7 @@ void CommandLineArgs::ParseCommandLine_Impl( Supplier& supplier ) // Print to special printer eCurrentEvent = CommandLineEvent::PrintTo; // first argument after "-pt" must be the printer name - if (supplier.next(&aArg)) + if (supplier.next(aArg)) m_printername = aArg; else if (m_unknown.isEmpty()) m_unknown = "--pt must be followed by printername"; @@ -550,13 +549,13 @@ void CommandLineArgs::ParseCommandLine_Impl( Supplier& supplier ) // --display and its argument are handled "out of line" // in Unix-only desktop/unx/source/splashx.c and vcl/unx/*, // and just ignored here - (void)supplier.next(&aArg); + (void)supplier.next(aArg); } else if ( oArg == "convert-to" ) { eCurrentEvent = CommandLineEvent::Conversion; // first argument must be the params - if (supplier.next(&aArg)) + if (supplier.next(aArg)) { m_conversionparams = aArg; // It doesn't make sense to use convert-to without headless. @@ -574,7 +573,7 @@ void CommandLineArgs::ParseCommandLine_Impl( Supplier& supplier ) if (eCurrentEvent == CommandLineEvent::BatchPrint) { // first argument is the printer name - if (supplier.next(&aArg)) + if (supplier.next(aArg)) m_printername = aArg; else if (m_unknown.isEmpty()) m_unknown = "--printer-name must be followed by printername"; @@ -589,7 +588,7 @@ void CommandLineArgs::ParseCommandLine_Impl( Supplier& supplier ) if (eCurrentEvent == CommandLineEvent::Conversion || eCurrentEvent == CommandLineEvent::BatchPrint) { - if (supplier.next(&aArg)) + if (supplier.next(aArg)) m_conversionout = aArg; else if (m_unknown.isEmpty()) m_unknown = "--outdir must be followed by output directory path"; @@ -602,7 +601,7 @@ void CommandLineArgs::ParseCommandLine_Impl( Supplier& supplier ) else if ( eCurrentEvent == CommandLineEvent::Conversion && oArg == "convert-images-to" ) { - if (supplier.next(&aArg)) + if (supplier.next(aArg)) m_convertimages = aArg; else if (m_unknown.isEmpty()) m_unknown = "--convert-images-to must be followed by an image type"; diff --git a/desktop/source/app/cmdlineargs.hxx b/desktop/source/app/cmdlineargs.hxx index a9eca1d980f1..59cd741a8c3f 100644 --- a/desktop/source/app/cmdlineargs.hxx +++ b/desktop/source/app/cmdlineargs.hxx @@ -45,7 +45,7 @@ class CommandLineArgs virtual ~Supplier(); virtual std::optional< OUString > getCwdUrl() = 0; - virtual bool next(OUString * argument) = 0; + virtual bool next(OUString& argument) = 0; }; CommandLineArgs(); diff --git a/desktop/source/app/officeipcthread.cxx b/desktop/source/app/officeipcthread.cxx index 9d342bf35a84..1378c91bf6c6 100644 --- a/desktop/source/app/officeipcthread.cxx +++ b/desktop/source/app/officeipcthread.cxx @@ -115,7 +115,7 @@ public: case '1': { OUString url; - if (!next(&url, false)) { + if (!next(url, false)) { throw CommandLineArgs::Supplier::Exception(); } m_cwdUrl = url; @@ -124,7 +124,7 @@ public: case '2': { OUString path; - if (!next(&path, false)) { + if (!next(path, false)) { throw CommandLineArgs::Supplier::Exception(); } OUString url; @@ -142,11 +142,10 @@ public: virtual std::optional< OUString > getCwdUrl() override { return m_cwdUrl; } - virtual bool next(OUString * argument) override { return next(argument, true); } + virtual bool next(OUString& argument) override { return next(argument, true); } private: - bool next(OUString * argument, bool prefix) { - OSL_ASSERT(argument != nullptr); + bool next(OUString& argument, bool prefix) { if (m_index < m_input.getLength()) { if (prefix) { if (m_input[m_index] != ',') { @@ -180,7 +179,7 @@ private: } OString b2(b.makeStringAndClear()); if (!rtl_convertStringToUString( - &argument->pData, b2.getStr(), b2.getLength(), + &argument.pData, b2.getStr(), b2.getLength(), RTL_TEXTENCODING_UTF8, (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR | RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR |