fpicker/source/office/fpsmartcontent.cxx | 22 +++++++++++----------- fpicker/source/office/fpsmartcontent.hxx | 5 +++-- 2 files changed, 14 insertions(+), 13 deletions(-)
New commits: commit bb1d1aa2fee82004c18682fd3b24246491f0cb13 Author: Noel Grandin <noel.gran...@collabora.co.uk> AuthorDate: Wed Mar 1 11:49:59 2023 +0200 Commit: Noel Grandin <noel.gran...@collabora.co.uk> CommitDate: Wed Mar 1 11:54:25 2023 +0000 no need to allocate ucbhelper::Content separately in SmartContent it is only one pointer big Change-Id: Ic7653a59ceebcc4cd7911fabdfc49537c244f960 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148037 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/fpicker/source/office/fpsmartcontent.cxx b/fpicker/source/office/fpsmartcontent.cxx index 91526034ed50..4cc504ddaa14 100644 --- a/fpicker/source/office/fpsmartcontent.cxx +++ b/fpicker/source/office/fpsmartcontent.cxx @@ -129,7 +129,7 @@ namespace svt // nothing to do, regardless of the state return; - m_pContent.reset(); + m_oContent.reset(); m_eState = INVALID; // default to INVALID m_sURL = _rURL; @@ -137,7 +137,7 @@ namespace svt { try { - m_pContent.reset( new ::ucbhelper::Content( _rURL, m_xCmdEnv, comphelper::getProcessComponentContext() ) ); + m_oContent.emplace( _rURL, m_xCmdEnv, comphelper::getProcessComponentContext() ); m_eState = UNKNOWN; // from now on, the state is unknown -> we cannot know for sure if the content // is really valid (some UCP's only tell this when asking for properties, not upon @@ -177,7 +177,7 @@ namespace svt if ( isInvalid() || !isBound() ) return false; - assert( m_pContent && "SmartContent::implIs: inconsistence!" ); + assert( m_oContent && "SmartContent::implIs: inconsistence!" ); // if, after a bindTo, we don't have a content, then we should be INVALID, or at least // NOT_BOUND (the latter happens, for example, if somebody tries to ask for an empty URL) @@ -185,9 +185,9 @@ namespace svt try { if ( Folder == _eType ) - bIs = m_pContent->isFolder(); + bIs = m_oContent->isFolder(); else - bIs = m_pContent->isDocument(); + bIs = m_oContent->isDocument(); // from here on, we definitely know that the content is valid m_eState = VALID; @@ -209,7 +209,7 @@ namespace svt try { OUString sTitle; - m_pContent->getPropertyValue("Title") >>= sTitle; + m_oContent->getPropertyValue("Title") >>= sTitle; _rTitle = sTitle; // from here on, we definitely know that the content is valid @@ -231,14 +231,14 @@ namespace svt bool bRet = false; try { - Reference< XChild > xChild( m_pContent->get(), UNO_QUERY ); + Reference< XChild > xChild( m_oContent->get(), UNO_QUERY ); if ( xChild.is() ) { Reference< XContent > xParent( xChild->getParent(), UNO_QUERY ); if ( xParent.is() ) { const OUString aParentURL( xParent->getIdentifier()->getContentIdentifier() ); - bRet = ( !aParentURL.isEmpty() && aParentURL != m_pContent->getURL() ); + bRet = ( !aParentURL.isEmpty() && aParentURL != m_oContent->getURL() ); // now we're definitely valid m_eState = VALID; @@ -262,7 +262,7 @@ namespace svt bool bRet = false; try { - const css::uno::Sequence<css::ucb::ContentInfo> aContentsInfo = m_pContent->queryCreatableContentsInfo(); + const css::uno::Sequence<css::ucb::ContentInfo> aContentsInfo = m_oContent->queryCreatableContentsInfo(); for ( auto const& rInfo : aContentsInfo ) { // Simply look for the first KIND_FOLDER... @@ -291,7 +291,7 @@ namespace svt { OUString sFolderType; - const css::uno::Sequence<css::ucb::ContentInfo> aContentsInfo = m_pContent->queryCreatableContentsInfo(); + const css::uno::Sequence<css::ucb::ContentInfo> aContentsInfo = m_oContent->queryCreatableContentsInfo(); for ( auto const& rInfo : aContentsInfo ) { // Simply look for the first KIND_FOLDER... @@ -307,7 +307,7 @@ namespace svt ucbhelper::Content aCreated; Sequence< OUString > aNames { "Title" }; Sequence< Any > aValues { Any(_rTitle) }; - m_pContent->insertNewContent( sFolderType, aNames, aValues, aCreated ); + m_oContent->insertNewContent( sFolderType, aNames, aValues, aCreated ); aCreatedUrl = aCreated.getURL(); } diff --git a/fpicker/source/office/fpsmartcontent.hxx b/fpicker/source/office/fpsmartcontent.hxx index 5f9d4e32fa92..ef3329320b85 100644 --- a/fpicker/source/office/fpsmartcontent.hxx +++ b/fpicker/source/office/fpsmartcontent.hxx @@ -25,6 +25,7 @@ #include <ucbhelper/content.hxx> #include <rtl/ref.hxx> #include <memory> +#include <optional> namespace svt @@ -49,7 +50,7 @@ namespace svt private: OUString m_sURL; - std::unique_ptr<::ucbhelper::Content> m_pContent; + std::optional<::ucbhelper::Content> m_oContent; State m_eState; css::uno::Reference < css::ucb::XCommandEnvironment > m_xCmdEnv; rtl::Reference<::svt::OFilePickerInteractionHandler> m_xOwnInteraction; @@ -129,7 +130,7 @@ namespace svt /** returns the URL of the content */ - OUString const & getURL() const { return m_pContent ? m_pContent->getURL() : m_sURL; } + OUString const & getURL() const { return m_oContent ? m_oContent->getURL() : m_sURL; } /** (re)creates the content for the given URL